¿Qué es Cron y Crontab?
El nombre Cron viene del griego Chronos que significa “tiempo”. Cron es un administrador de procesos en segundo plano que ejecuta procesos a intervalos de tiempo.
Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab.
Por otra parte, Crontab es un simple archivo de texto que guarda una lista de comandos a ejecutar en un tiempo especificado por el usuario. Crontab mirará la fecha y hora en que se debe ejecutar el script o el comando, los permisos de ejecución y lo ejecutará. Cada usuario puede tener su propio archivo crontab.
¿Cómo funciona Crontab?
El demonio cron se inicia en /etc/init.d aunque este directorio puede depender de la distribución, como todo demonio se inicial en el arranque del sistema.
Como usuario o administradores, podemos agregar comandos o scripts a crontab para automatizar algunos procesos.
Esto es útil por ejemplo para automatizar la actualización de un sistema, hacer copias de seguridad, entre otras opciones.
Primeros pasos:
Antes de empezar con Crontab, haremos un :
export EDITOR=nano
Con esto, pondremos la aplicación de texto por defecto “nano”. Aqui cada uno puede usar la que le sea más sencilla o esté mas acostumbrado a utilizar.
Comandos básicos de Cron
Crontab -r : Elimina todo el contenido de Crontab.
Crontab -l: Listaremos el contenido de Crontab.
Crontab -e: Editaremos el fichero Crontab.
Man crontab: Abriremos el manual de Crontab.
Primero de todo abriremos el fichero Crontab con un Crontab -e.
Una vez dentro, iremos debajo del todo, y pondremos la línia que nos interese que Cron haga y cuando quiera que lo haga.
Con la siguiente imagen, vamos a ver un claro ejemplo de como se usa Crontab.
Como podemos ver, los dos primeros números dicen la hora y minutos que queremos que se ejecute.
Los dos asteriscos que podemos ver en la fotografía, son, los días del mes que queremos que se ejecute, y que mes, o meses, queremos que se ejecute, significando que puede ejecutarse en cualquier día de cualquier mes, es decir, sin restricción sobre esos campos. Y/o, los días del mes, es decir, cada Lunes/Martes[…], y a continuación, el usuario. Y como último, el comando que queremos que se ejecute.
Ejemplo para automatizar backups con Crontab:
0 5 * * 1 root tar -zcf /var/backups/home.tgz /home/
Podéis utilizar esta calculadora, para afinar mejor los números a la hora de escribir en el fichero crontab.