Blog del Podcast
podcast      GitHub      Twitter   Telegram

Cron. Ejemplos

Tiempo estimado de lectura: 5 minutos. 606 palabras. bash

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.

Estructura 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,…

Comandos de cron

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

Palabras reservadas

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

Ejemplos cron

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

Restringir acceso a cron a todos los usuarios

echo ALL >>/etc/cron.deny

Permitir acceso a un usuario

Permitir acceso al usuario angel.

echo angel >>/etc/cron.allow

Fuentes


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

Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.