Cron es muy sencillo y a la vez complejo. Cuando quieres utilizar una programación en el tiempo muy concreta, entre días, meses, días de la semana, cada ciertos minutos… Puede llevar a confusión.
En este artículo añado algunos de los ejemplos y así afinar el tiempo exacto que deseas, en tu programación con cron.
# Ejemplo de definición de trabajo:
# .---------------- minuto (0 - 59)
# | .------------- hora (0 - 23)
# | | .---------- día del mes (1 - 31)
# | | | .------- mes (1 - 12) O ene, feb, mar, abr ...
# | | | | .---- día de la semana (0 - 6) (domingo = 0 o 7) O dom, lun, mar, mié, jue, vie, sáb
# | | | | |
# * * * * * comando de nombre de usuario que se ejecutará
Visualizado de otro modo:
Minuto Hora Día del Mes Mes Dia Semana Usuario Comando
* * * * * root comando
El * , indica "todos". Todos los minutos, horas, dias,…
Establece archivo.txt como crontab del usuario
crontab archivo.txt
Abrir crontab para añadir o editar cron
crontab -e
Ver el crontab del usuario actual
crontab -l
Eliminar el crontab actual
crontab -r
Cron tiene una serie de palabras reservadas para simplificar:
@reboot ## Se ejecuta cada vez que iniciamos el sistema
@yearly/@annually ## Ejecutar cada año
@monthly ## Ejecutar cada mesuna vez al mes
@weekly ## Una vez a la semana
@daily/@midnight ## Una vez al día
@hourly ## Cada Hora
Estos son algunos de los ejemplos de cron
10 * * * * ## Cada hora en el minuto 10
30 5 * * * ## Todos los dias a las 5:30h
15 22 * * * ## Todos los dias a las 22:15h
00 13 * * 0 ## Domingos a las 13h
* 13 * * ## Los Domingos. Cada minuto de 13:00h a 13:55h
00 13 5 * * ## Los dias 5 de cada mes, a las 13:00
05 * 20 15 * ## El día 15 de Julio, cada hora al minuto 5
15 13 * 11 2 ## Los Martes de Noviembre, a las 13:15h
00 22 15 * Wen ## Los 15 de mes, que coincidan en Miércoles, a las 22:00h
30 * * * 6 ## Los Sábados, cada minuto 30
30 * * 1 6 ## Los Sábados de Enero, cada minuto 30
00 13 * 1-3 1,2,3,4,5 ## De lunes a viernes, de enero a marzo, a las 13:00h
00 13 15-20 * 6-7 ## Del 15 al 20 de cada mes, que sea Sábado o Domingo, a las 13:00h
10,30,45 * * * 1,3,5 ## Lunes, Miércoles y Viernes, en el minuto 10, 30 y 45 de todas las horas
*/15 06-14 * * * ## Cada día, de 6h-14h, cada 15 minutos
* 12 1-10/2 2,8 * ## Todos los minutos de las 12 del día, cada dos días empezando por el día 1, en febrero y agosto.
0 */5 1-10,15,20-23 * 3 ## Cada 5 horas de los días 1 al 10, el día 15 y del día 20 al 23 de cada mes y que el día sea miércoles
3/3 2/14 * * * ## Cada 3 minutos empezando por el minuto 3, cada 4 horas empezando por las 14:00h
Restringir acceso a cron a todos los usuarios
echo ALL >>/etc/cron.deny
Permitir acceso al usuario angel.
echo angel >>/etc/cron.allow
Publicado por Angel el Tuesday 15 October del 2019
También te puede interesar:
Powered by org-bash-blog
Written in OrgMode with Emacs and converted to HTML with Pandoc
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.