Crontab programando eventos periódicos

por:

¿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.

Escribiendo una línea en crontab para ejecutar un comando de manera periódica con cron

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.

Deja una Respuesta