lunes, 3 de abril de 2017

Como utilizar el Crontab de Linux

CRONTAB

El comando crontab se utiliza en sistemas UNIX para programar la ejecución de otros comandos, es decir, para automatizar tareas. Podemos ver los crontabs que se están programados y también editarlos, lógicamente.
Para verlos, utilizamos este comando:
sudo crontab -l
Para editarlos:
sudo crontab -e

FORMATO DE LAS TAREAS

Las tareas cron siguen una determinada sintaxis. Tienen 5 asteriscos seguidos del comando a ejecutar. Ahora explicaré para qué sirve cada cosa.
* * * * * /bin/ejecutar/script.sh

Los 5 asteriscos

De izquierda a derecha, los asteriscos representan:
  1. Minutos: de 0 a 59.
  2. Horas: de 0 a 23.
  3. Día del mes: de 1 a 31.
  4. Mes: de 1 a 12.
  5. Día de la semana: de 0 a 6, siendo 0 el domingo.
Si se deja un asterisco, quiere decir "cada" minuto, hora, día de mes, mes o día de la semana. Por ejemplo:
* * * * * /bin/ejecutar/script.sh
Ejecuta este script:
  • Cada minuto
  • De cada hora
  • De cada día del mes
  • De cada mes
  • De cada día de la semana
Otro ejemplo:
30 2 * * 1 /bin/ejecutar/script.sh
Ejecutar este script:
  • En el minuto 30
  • De las 2 de la noche
  • De cada día del mes
  • De cada mes
  • Sólo si es viernes
En resumen, todos los viernes a las 2:30 horas se ejecutará el script.

Intervalos de tiempo

Ejecutar un script de lunes a viernes a las 2:30 horas:
30 2 * * 1-5 /bin/ejecutar/script.sh
Ejecutar un script de lunes a viernes cada 10 minutos desde las 2:00 horas durante una hora:
0,10,20,30,40,50 2 * * 1-5 /bin/ejecutar/script.sh
Esto quizá puede ser largo. La sintaxis de crontab permite lo siguiente. Imaginemos que queremos ejecutarlo cada 5 minutos:
*/5 2 * * 1-5 /bin/ejecutar/script.sh

PALABRAS RESERVADAS

Muchas veces tenemos palabras reservadas para facilitar el uso de programas o lenguajes de programación. Cron no podía ser menos, así que tenemos algunas que suelen ser las más comunes. Ya cada uno que lo configure conforme a sus necesidades. Aquí van:
  • @reboot: se ejecuta una única vez al inicio.
  • @yearly/@annually: ejecutar cada año.
  • @monthly: ejecutar una vez al mes.
  • @weekly: una vez a la semana.
  • @daily/@midnight: una vez al día.
  • @hourly: cada hora.
Por ejemplo, para ejecutar el script cada hora:
@hourly /bin/ejecutar/script.sh

No hay comentarios:

Publicar un comentario