Cron

De Hacklab La Paz - r00thouse

cron es una utilidad destinada a funcionar como programador de tareas en el sistema operativo GNU/Linux. Más específicamente cron es un demonio informático (se ejecuta constantemente y espera hasta que un suceso ocurra para actuar).


/etc/crontab

En este archivo se puede especificar las tareas que se llevarán a cabo de acuerdo a campos y a una nomenclatura especial.

Campos

Cada campo se refiere a una unidad de tiempo y los últimos dos campos al usuario y al comando que se ejecutará por ejemplo

#<minuto> <hora> <día del mes> <día de la semana> <usuario> <comando>
05 3 * * * root killall debmirror

Nomenclatura

*
Corresponde a todos los valores posibles
val1,val2,val3
Corresponde a cualquiera de los valores en la lista separada por comas, por ejemplo (2,5,6)
val1-val2
- (guión) indica un intervalo, por ejemplo 2-12 en horas significa de 2:00 a 12:00
/
Se usa en combinación con otros, por ejemplo */5 en los minutos ejecutará la tarea cada 5 minutos

Viendo los siguientes ejemplos:

00 01 * * * root shutdown -h now

La línea anterior en /etc/crontab indica; a los 00 minutos de las 01 horas de cualquier día del mes y a cualquier día de la semana , el usuario root ejecuta el comando 'shutdown -h now'. Es decir, apagar el equipo todos los días a la 01:00 horas.

11 09 * * 1 juan sh /home/juan/copia_seguridad.sh

La línea anterior hace que el usuario juan ejecute el script 'copia_seguridad.sh' cada primer día de la semana a horas 09:11.
Algo importante a recordar es que cron "despierta" cada minuto para comprobar si hay alguna tarea pendiente.

Existen los directorios /etc/cron.daily/ , etc/cron.hourly/, /etc/cron.weekly y /etc/cron.monthly/ donde se pueden colocar scripts para que cron los ejecute en intervalos diariamente, cada hora, cada semana y cada mes respectivamente.