Linux tiene un dominio cron que normalmente se ejecuta en el
arranque de linux. Este dominio despierta cada minuto, mira si tiene que ejecutar
alguna tarea, la ejecuta y se duerme. Si queremos que algún comando o tarea se
ejecute automáticamente cada cierto tiempo, la forma de hacerlo es indicándole
a este dominio que lo haga.
Hay varios ficheros en el sistema operativo y para cada
usuario en el que este dominio busca tareas para ejecutar. Uno de ellos es
/etc/crontab. El formato de este fichero es:
minuto hora dia_del_mes mes dia_de_la_semana usuario comando
Donde minuto, hora, dia_del_mes, mes y dia_de_la_semana son
lo que parecen, a qué hora, minuto, etc. Se debe ejecutar el comando. En estos
campos se pueden poner comodines y hay varios formatos. Por ejemplo, un * en
minuto es en todos los minutos:
- * 4 * * * significa todos los minutos de las cuatro de la madrugada, todos los días, todos los meses. Es decir, se ejecuta 60 veces a las 4:00 am, 4:01 am,... 4:59 am y ya no más hasta el día siguiente.
También se pueden poner rangos o valores discretos, así:
- 10,20,30 * * * * significa todos los días a todas las horas en los minutos 10, 20 y 30, es decir, a las 0:10 am, 0:20 am, 0:30 am, 1:10 am, 1:20 am, etc.
- */15 10-14 * * * significa cada 15 minutos entre las 10 am y las 2 pm (las 14).
Y así un largo etcétera.
Un ejemplo concreto de lo que puede haber en un crontab:
- 0 0 * * 6 root rm -rf /home/usuario/temp
Borraría todos los sábados (día 6) a las 0:00 horas el
directorio /home/usuario/tmp.
Un usuario puede crear sus propias tareas y añadirlas a
cron. Para ello, en cualquier ubicación crea un fichero similar a crontab con
el nombre que quiera y sin poner el usuario. Por ejemplo:
- 0 11 * * 1-5 avisameParaElCafe.sh
Ejecutaría todos los días de lunes a viernes (1-5) a las
11:00 am el comando "avisameParaElCafe.h". Si este fichero se llama
mi_cron, entonces para añadir estas tareas al demonio de cron hay que ejecutar
el comando:
- crontab mi_cron