AOWS

Just another adrian’s weblog

Cron

leave a comment »

Bajo este nombre (derivado del griego chronos, tiempo) se esconde una potente herramienta de los sistemas basados en Unix, gracias a la cual se puede automatizar casi cualquier tipo de proceso. Por ejemplo, podemos programar la creación de backups cada fin de semana, o cada 8 horas, o cada martes 13… ejecutar scripts de mantenimiento, actualización de logs…

La configuración de esta utilidad se realiza en el crontab. Este fichero de configuración posee una sintaxis especial como la que vemos a continuación (podemos editarlo con crontab -e):

+---------------- minuto (0 - 59)
|  +------------- hora (0 - 23)
|  |  +---------- día del mes (1 - 31)
|  |  |  +------- mes (1 - 12)
|  |  |  |  +---- día de la semana (0 - 7) (domingo=0 o 7)
|  |  |  |  |
*  *  *  *  *  comando

En cada línea se especifirá pues el comando a ejecutar y en los campos previos cuándo ejecutarlo. En cada uno de estos campos podemos utilizar operadores:

  • “,” para especificar una lista de valores: “0,2,4,5”
  • “-“ para indicar rangos de valores: “0-4”, equivalente a “0,1,2,3,4”
  • “*” para seleccionar todos los posibles valores. Un asterisco en el campo correspondiente al día del mes hará que el comando se ejecute todos los días.

Ahora imaginemos que queremos ejecutar un script para hacer backup de nuestra BD todos los días en la madrugada para que los usuarios no noten ninguna disminución del rendimiento y para que el volcado se haga correctamente.

0 6 * * * /home/aows/mysql.sh  > /dev/null 2>&1

El código anterior ejecutaría el script todos los días a las 6 de la mañana, además de eliminar cualquier tipo de salida que produzca y evitar el envío del correo que cron envía cada vez que se ejecuta.

Esto se puede complicar mucho más si nuestros requerimientos son distintos. Por ejemplo, ¿y si queremos establecer una periodicidad de 2 días? Una solución podría ser especificar todos los días como una lista: “0,2,4,6…”, pero mucho más simple es utilizar el operador “/”:

0 0 */2 * * comando

lo cual sería equivalente a la lista antes escrita.

Más información, como siempre, en la Wikipedia.

Written by adrian

5 septiembre, 2007 a 19:22

Publicado en Posts

Tagged with , , , , ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: