viernes, 21 de enero de 2011

Actualizar Fedora/CentOS automáticamente con yum y cron

Hace unos días vimos cómo actualizar ubuntu automáticamente con APT y Cron, ya que como administradores de sistemas tenemos muchas tareas que hacer, y GNU/Linux tiene una amplia gama de herramientas para ayudarnos a hacer esas tareas lo más automatizadas posible. Entre ellas tenemos los scripts de Bash y los comandos at y cron. De estas cron y los scripts constituyen el dúo más utilizado entre los administradores. Y es que cron, utilizando scripts o no, en verdad nos hace la vida más cómoda cuando lo sabemos utilizar.

A continuación veremos como programar una tarea en cron para actualizar los paquetes del sistema. El mismo procedimiento podría utilizarse para otras distros tomando en cuenta la aplicación de CLI que utilizan para actualizar los paquetes del sistema y haciendo los ajustes necesarios. Todo esto lo haremos con YUM, el gestor de paquetes por defecto en Fedora, CentOS, Red Hat y otros.
Manos a la obra...

Nota: Ya que el daemon cron es ejecutado por root, no es necesario utilizar sudo en los comandos.

Creamos el script de Bash, por ej. en nuestro /home/

fraterneo@rainbow:~$ nano auto-update.sh

#!/bin/bash

# Actualizamos la base de datos de APT, descargamos e instalamos los paquetes, 
# removemos los paquetes innecesarios, limpiamos la caché de APT
# y enviamos los mensajes de salida y errores al archivo auto_update.log
(yum update -y && yum clean expire-cache && yum clean packages && exit) 2>&1 >> /var/log/auto_update.log

Le otorgamos permisos de ejecución al script:

fraterneo@rainbow:~$ sudo chmod +x auto-update.sh 

Probamos que funcione correctamente ejecutándolo y verificando la salida en el fichero auto_update.log:

fraterneo@rainbow:~$ sudo ./auto-update.sh
fraterneo@rainbow:~$ tail -f /var/log/auto-update.log
........
........

perl-threads                 i686   1.81-1.fc13                  updates  46 k
python-crypto                i686   2.1.0-1.fc13                 fedora  313 k
python-markupsafe            i686   0.9.2-3.fc13                 updates  22 k
report-config-ftp            i686   0.20-0.fc13                  updates  14 k
report-plugin-ftp            i686   0.20-0.fc13                  updates  17 k
tcl                          i686   1:8.5.8-1.fc13               updates 1.9 M
usb_modeswitch-data          noarch 20100817-1.fc13              updates  38 k
Transaction Summary
================================================================================
Install      21 Package(s)
Upgrade     501 Package(s)


Total size: 347 M
Total download size: 286 M
Downloading Packages:
Setting up and reading Presto delta metadata
Processing delta metadata
Download delta size: 63 M

Crear la tarea en cron, para que por ej. ejecute el script todos los días a las 2 de la mañana:

Agregamos la siguiente línea al final del fichero crontab:

fraterneo@rainbow:~$ sudo nano /etc/crontab


0 2 * * * root /home/fraterneo/auto-update.sh 

Y todo listo! Ya tenemos un trabajo menos que realizar manualmente!


Existe además yum-cron, la cual es una herramienta que puede hacer todo esto de forma directa, ya que es una especie de crontab para YUM con un fichero de configuración muy similar al crontab normal. Para saber más sobre yum-cron visita este enlace y este otro enlace.

No hay comentarios:

Publicar un comentario