Pregunta ¿Cuándo se ejecuta `cron.daily`?


Cuando hacer entradas en cron.daily (y .weekly y .hourly) corre, y es configurable?

No he encontrado una respuesta definitiva a esto, y espero que haya una.

Estoy ejecutando RHEL5 y CentOS 4, pero para otras distribuciones / plataformas también sería genial.


178
2018-04-26 15:31


origen


En NetBSDLos tiempos de los cronjobs diarios, semanales y mensuales se establecen en el crontab de root. - hd1
Esta pregunta sería más útil si la pregunta fuera editada para ser más genérica. Como mínimo, haga la pregunta genérica para cualquier versión de redhat, centos distros en lugar de solo para las versiones 4 y 5 (que no son ampliamente utilizadas y son "fin de producción" (Similar a fin de la vida). - Trevor Boyd Smith
@TrevorBoydSmith: esta pregunta se hizo hace casi 8 años. Siéntase libre de pedir uno actualizado para las versiones más recientes. Pero RHEL 6 ni siquiera existía en abril de 2010: access.redhat.com/articles/3078#RHEL6 - warren
@warren mi intención no es criticar sino simplemente mejorar la pregunta y el flujo de pila en general. (Entiendo que RHEL 6 no existía cuando se hizo la pregunta. Debido a que la pregunta tiene tantos votos positivos, sería bueno tenerla más genérica). - Trevor Boyd Smith
@TrevorBoydSmith .. ya hay una respuesta para CentOS / RHEL 6 :) ... Me encantaría aprobar buenas ediciones si tiene alguna idea. Continúe y realice las modificaciones sugeridas a la pregunta que ha pensado - warren


Respuestas:


Para las distribuciones que mencionas:

En CentOS 5.4 (debería ser el mismo para RHEL5)

grep run-parts /etc/crontab

01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

Así que cron.daily corre a las 04:02 am.

Lo mismo en CentOS 4.8


136
2018-04-26 16:23



¿Hay alguna razón detrás de esto? Solo puedo asumir que sería el momento más tranquilo en el servidor. - The Pixel Developer
@ ¿A qué hora se ejecuta en ubuntu? ¿Puedes decirme cómo puedo comprobarlo? No puedo entender la salida del comando - Narendra Jaggi
@NarendraJaggi el comando "ejecutar partes" significa "ejecutar todo en esta carpeta". Las carpetas cron.daily, etc. funcionan porque hay un trabajo cron para ejecutar partes de ejecución en estos directorios. Asi que grep run-parts /etc/crontab simplemente encuentra las instrucciones sobre cuándo se llama run-parts para cada uno de estos directorios. - Jordan Reiter
Esta ya no es una respuesta válida para CentOS 6 o superior, desplácese hacia abajo para obtener más. - lzap


De la página del manual:

 Cron also searches for /etc/anacrontab

/etc/anacrontab en mi sistema (fedora 12):

1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

Ver también man anacrontab


63
2018-04-26 15:35



Este es el caso de CentOS 6. Gracias. - mbrownnyc
Eso significa 5am cada "1" días ?. Lo siento, pero esto no responde nada. - elysch
@elysch Permítame repetir la última línea de mi respuesta: vea también "man anacrontab" - leonbloy
Buena explicación de anacron aquí. Básicamente, anacron tiene sin hora de inicio fija, sino que iniciará el proceso en función de cuándo se ejecutó el último proceso, con un retraso específico. Si la máquina está apagada cuando el proceso debería haber corrido, luego iniciará el proceso cuando la máquina vuelva a funcionar, después de la demora especificada (si no hay rangos especiales + demora aleatoria, vea la respuesta de @spechal). - storm_m2138
@mbrownnyc y también CentOS-7 también - Trevor Boyd Smith


Para CentOS 6, necesita grep / etc / anacrontab y la respuesta varía si el servidor / laptop / dekstop / etc ha sido apagado o no.

cat /etc/anacrontab 
# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command
1   5   cron.daily      nice run-parts /etc/cron.daily
7   25  cron.weekly     nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly        nice run-parts /etc/cron.monthly

Por lo tanto, entre las 3 am y las 10 pm * (después de reiniciar y después de que la máquina haya estado funcionando durante 5 minutos ^^), ejecute /etc/cron.daily. Si no hay reinicio, el trabajo debe ejecutarse a las 3:05 AM++.

** As defined by START_HOURS_RANGE
^^ As defined by FIELD_TWO (i.e. the 5 after the 1 in the cron.daily line)
++ plus a random time between 0 and 45 minutes as defined by RANDOM_DELAY

Referencia: http://linux.die.net/man/5/anacrontab


38
2017-10-29 21:20





Para los sistemas SuSE (específicamente SLES 11.1 y openSuSE 10.3) el tiempo de ejecución diario de los scripts /etc/cron.daily se controla mediante el valor de DAILY_TIME variable establecida en el / etc / sysconfig / cron expediente.

Si la variable DAILY_TIME no está establecida, su valor predeterminado es: (tiempo del último inicio + 15 minutos).


12
2017-08-16 03:18



¡muchas gracias! SuSE es bastante opaco para mí y agradezco su respuesta. - dr0i


En Ubuntu, encontrará un archivo / etc / crontab, desde donde está configurado. Supongo que es algo parecido en RH y Centos.


9
2018-04-26 15:33



Este es el archivo correcto para Ubuntu Lucid 10.04 LTS. Mi configuración predeterminada es 6:25 am para cron.daily. - geekQ
Todavía establecido como 6:25 am en Ubuntu 15.04. Pero me doy cuenta de que cron debe insertar algo de aleatoriedad en el momento en que comienza los trabajos. Mirando las marcas de tiempo de los archivos que crea mi trabajo diario, veo que algunos días se ejecutan desde las 6:26 y en otros hasta las 8:04 am. - Stéphane
Aún establecido a las 6:25 am en Ubuntu 16.04 - Cada hora a las 17 minutos, hora pasada. Diariamente a las 6:25 am. Semanal a las 6:47 am del sábado. Mensualmente a las 6:52 am del primer día del mes. - WinEunuuchs2Unix


CentOS6.x / RedHat6.x instala por defecto el paquete cronie-anacron. Tienes que:

yum instalar cronie-noanacron

yum borrar cronie-anacron

Entonces ahora tiene /etc/cron.d/dailyjobs para configurar el mejor horario para sus trabajos diarios, semanales y mensuales.


4
2017-08-29 19:50



Si anacron está instalado, ¿no podría simplemente editar / etc / anacrontab según otros comentarios aquí en lugar de desinstalarlo? - cincodenada
@cincodenada Eso no es lo que sugiere Daniel Stantos. - mikemaccana


Yo uso Slackware (14.0), y no tenía /etc/crontab. También, anacron No es parte de la distribución.

La solución en mi sistema era tan simple como correr crontab -l como raíz

root@flea:~# crontab -l
# If you don't want the output of a cron job mailed to you, you have to direct
# any output to /dev/null.  We'll do this here since these jobs should run
# properly on a newly installed system.  If a script fails, run-parts will
# mail a notice to root.
#
# Run the hourly, daily, weekly, and monthly cron jobs.
# Jobs that need different timing may be entered into the crontab as before,
# but most really don't need greater granularity than this.  If the exact
# times of the hourly, daily, weekly, and monthly cron jobs do not suit your
# needs, feel free to adjust them.
#
# Run hourly cron jobs at 47 minutes after the hour:
47 * * * * /usr/bin/run-parts /etc/cron.hourly 1> /dev/null
#
# Run daily cron jobs at 4:40 every day:
40 4 * * * /usr/bin/run-parts /etc/cron.daily 1> /dev/null
#
# Run weekly cron jobs at 4:30 on the first day of the week:
30 4 * * 0 /usr/bin/run-parts /etc/cron.weekly 1> /dev/null
#
# Run monthly cron jobs at 4:20 on the first day of the month:
20 4 1 * * /usr/bin/run-parts /etc/cron.monthly 1> /dev/null

4
2018-03-12 21:50