Para programar tareas repetitivas cada cierta hora o cierto intervalo de tiempo se puede usar el cron. Vamos a ver como usarlo.
Para editar o listar las tareas del cron lo podemos hacer mediante el comando crontab. Para listar las tareas se usa el modificador -l:
$ crontab -l
Para editar las tareas es con el modificador -e:
$ crontab -e
Y para eliminarlas con el -r:
$ crontab -r
En el caso de root podemos usar estos comandos para cualquier usuario simplemente indicando mediante -u el nombre de este:
# crontab -l -u nombre_del_usuario
Una vez dentro del cron para indicar cada cuanto queremos ejecutar una tarea tenemos 5 elementos:
0 12 * * * /etc/init.d/servicio restart
En la siguiente imagen tenemos una chuleta para editar el cron:
Unos ejemplos de tareas en el cron son las siguientes:
Cada dia a las 0:00:
0 0 * * * /etc/init.d/servicio restart
Cada domingo a las 6:30:
30 6 * * 0 /usr/local/bin/script.sh
Para definir intervalos de tiempo podemos utilizar el /intervalo, por ejemplo:
Cada 5 minutos:
*/5 * * * * /usr/bin/script.sh
Cada 4 horas a en punto:
0 */4 * * * /etc/init.d/servicio restart
En este caso debemos tener cuidado con el siguiente:
* */4 * * * /etc/init.d/servicio restart
Ya que esto significa: “Cada minuto de la hora cada cuatro horas” por lo que cada 4 horas se ejecutaría cada minuto de esa hora.
Para indicar algunas horas sueltas sin intervalo sería, por ejemplo a las 2:00, a las 3:00 y a las 7:00 podemos separar los elementos por comas:
0 2,3,7 * * * /etc/init.d/servicio restart