Cronjobs

Los servidores UNIX tienen por lo general activado un demonio o servicio, cuya utilidad es la de lanzar procesos (ejecutra programas) con control horario.

Esto facilita las tareas de administración del sistema, siendo utilizado generalmente porlos administradores para diversas tareas, como son la realizaciónde copias de seguridad, rotación de las bitacoras o log

Se pueden ejecutar scripts basados en PHP, CGI de perl o C, o incluso scripts de bash, que se ejecutarán conforme lo indiquemos en la tarea.

Su sintaxis consiste en una línea por taréa, con el siguiente formato:
minute hour daymonth month dayweek comando

Los valores pueden ser los siguientes:

minute 0-59
hour 0-23
day of month 0-31
month 0-12 (or names, see below)
day of week 0-7 (0 and 7 = sunday)

Si algún campo queramos que se ignore (que se ejecute para cualquier valor) pondremos un *.

También pueden incluirse múltiples fechas mediante la coma ` ,´, como por ejemplo, ejecutar un programa los dias 1,3,5,7 de la semana. Ejemplos: ejecución del programa randsig:

A las 12:30 de la mañana:

30 12 * * * /usr/bin/randsig

Eso ejecutaría randsig a la 12:30 de cualquier dia de la semana, cualquier día del mes, y en cualquier mes, es decir: ejecutaría randsig todos los días a las 12:30:

A las 12:30 de la madrugada:

30 00 * * * /usr/bin/randsig


Por defecto cron envia un email con la salida estándar y otro con la salida de error (si la hay) al usuario propietario de la tarea. Para evitar esto podemos usar 1>/dev/null y 2>/dev/null (ambos, o sólo 1 de ellos si queremos conocer los errores, por ejemplo).

30 12 * * * comando 1>/dev/null 2>/dev/null

Más información en la pagina man de cron ya que podemos ejecutar en el shell crontab -e y tenemos acceso al servidor mediante SSH.



09/07/2009      Visitas: 4464



  Volver