Programar tareas periódicas con cron

última modificación:

Comandos como rsync o mysqldump son más útiles cuando se ejecutan de forma automática y periódica. Para eso existe cron, el planificador de tareas de sistemas tipo Unix.

Con crontab -e editamos la tabla de tareas del usuario actual:

crontab -e

Cada línea de la tabla sigue el formato:

minuto  hora  día-mes  mes  día-semana  comando

El asterisco * significa «cualquier valor». Algunos ejemplos:

0 2 * * *    rsync -av /home/usuario/ /mnt/disco-externo/backup/
0 3 * * 0    mysqldump -u root -pcontraseña nombre_bd > /tmp/backup.sql
*/5 * * * *  /usr/local/bin/dynhost.sh

El primer ejemplo ejecuta rsync cada día a las 2:00. El segundo, mysqldump todos los domingos a las 3:00. El tercero, cada 5 minutos.

Para ver las tareas activas del usuario:

crontab -l

Hay que tener en cuenta que cron ejecuta los comandos en un entorno sin las variables de la sesión interactiva. Por eso conviene usar rutas absolutas tanto para los comandos como para los archivos que manejan.