PROGRAMAR TAREAS EN LINUX USANDO CRONTAB

Consigue gratis tu cuenta

Curso de Vagrant

En este curso aprenderás a utilizar Vagrant para poder crear tus propias máquinas virtuales con diferentes sistemas operativos en cuestión de minutos. Con Vagrant mejorarás tu productividad y tendrás tu entorno de desarrollo configurado rápidamente. ¿Quieres saber más? ¡Apúntate!

Comenzar ahora
reloj

¡Hola! Hoy voy a enseñaros una herramienta muy útil, llamada Cron, que sirve para programar y automatizar tareas en Linux. En Geeky Theory lo usamos mucho, ya que nuestro alojamiento es con sistema operativo Debian y, hay que saber aprovechar este tipo de funciones que nos ofrece. Si queremos, por ejemplo, que cada hora se ejecute un script, o un archivo PHP, o cualquier cosa que queramos, pues no vamos a meternos 24 veces al día para ejecutarlo manualmente. No tiene sentido. Para esto está Cron.

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
Y esto es todo por este tutorial. Seguro que le dais uso a esta útil herramienta. Yo lo hago y va de maravilla. ¡Un saludo! Fuente de las imágenes: idevie | designmodo

¿Quieres seguir aprendiendo?