Cuando trabajamos con servidores establecer tareas programadas es algo muy importante. Con ellas podemos programar actualizaciones del sistema, reinicio de servicios, ejecutar scripts, creación de copias de seguridad, etc. Por esta razón, vamos a aprender a usar el comando crontab y sus opciones más habituales. Si queremos, por ejemplo, que cada hora se ejecute un script, o un archivo PHP, 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:
1 |
sudo crontab -l |
Para editarlos:
1 |
sudo crontab -e |
FORMATO DE LAS TAREAS
Las tareas cron siguen una determinada sintaxis. Tienen 5 asteriscos seguidos del comando a ejecutar. Explicaremos que es cada asterisco.
1 |
* * * * * /bin/ejecutar/script.sh |
EXPLICACIÓN ASTERISCOS
De izquierda a derecha, los asteriscos representan:
1 2 3 4 5 |
# Minutos: de 0 a 59. # Horas: de 0 a 23. # Día del mes: de 1 a 31. # Mes: de 1 a 12. # 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:
1 |
* * * * * /bin/MiWeb/script.sh |
Ejecutaria el script:
- Cada minuto
- De cada hora
- De cada día del mes
- De cada mes
- De cada día de la semana
Otro ejemplo sería:
1 |
30 2 * * 1 /bin/ejecutar/script.sh |
Ejecutaria el 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
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:
1 |
30 2 * * 1-5 /bin/MiWeb/script.sh |
Ejecutar un script de lunes a viernes cada 10 minutos desde las 2:00 horas durante una hora:
1 |
0,10,20,30,40,50 2 * * 1-5 /bin/MiWeb/script.sh |
La sintaxis de crontab tambien permite lo siguiente. Imaginemos que queremos ejecutarlo cada 5 minutos:
1 |
*/5 2 * * 1-5 /bin/MiWeb/script.sh |
PALABRAS RESERVADAS
1 2 3 4 5 6 |
@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. |
Ejemplo, ejecutar el script cada hora:
1 |
@hourly /bin/MiWeb/script.sh |
Suscribete
Suscribete a nuestro newsletter y mantente informado con nuestros últimos artículos, noticias y más. Todo completamente gratis.
Tu suscripción a sido realizada con éxito.