¿En qué día / hora comienza un cron semanal?

8

Eché un vistazo al cron pero no encontré nada que me ayudara :(

¿Nadie sabe?

menta
fuente
Esto es más adecuado para superusuario, ¿no?

Respuestas:

16

Aquí estoy dando una respuesta alternativa a pesar de que Trevor es correcto.

La @weeklypalabra clave cron hace exactamente lo que mencionó. Sin embargo , la mayoría de las distribuciones utilizan run-partspara ejecutar sus propios archivos crontab programados (por hora, día, semana y mes) que no utilizan las palabras clave de cron.

Por ejemplo , Ubuntu tiene un /etc/cron.weeklyarchivo que contiene un archivo separado para cada cronjob.

Esto generalmente se define en /etc/crontab

La versión kármica 9.10 de Ubuntu tiene lo siguiente en /etc/crontab

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Entonces, el crontab semanal en Ubuntu se ejecuta a las 6.47am del domingo

Nota: cuando busque páginas de manual para implementaciones de crontab, debe usarlas en man 5 crontablugar de solo man crontab. Este último solo le dará la sintaxis para el comando crontab. El primero le brinda detalles de implementación de crontab.

Philip Reynolds
fuente
Un poco quisquilloso aquí, la sección 5 en las páginas de manual son para formatos de archivo y convenciones, por lo que no es una implementación completa. Especifica el formato del archivo y a menudo tiene ejemplos
Steve Buzonas,
7 es domingo? Pensé que 0 era domingo? (Y si comenzara a las 1, creo que 1 era el domingo.)
Felhe el
@felwithe Sunday es tanto 0 como 7, por lo que puede elegir el que mejor se ajuste al primer día de la semana en su localidad (lunes vs. domingo).
László van den Hoek
Creo que esto es incorrecto, por lo que ayuda a entender: So the weekly crontab in Ubuntu is run at 6.47am on Sunday. Esto es incorrecto porque la test -x /usr/sbin/anacron ||parte del comando dice que SOLO ejecute las cosas a la derecha de ||si "/ usr / sbin / anacron" NO es ejecutable o no existe, pero sí lo hace, ¡así run-partsque nunca se ejecutará cron! Por el contrario, anacrondebe estar manejando, ¿verdad? La tabla de Aanacron en "/ etc / anacrontab" muestra esto para semanalmente: lo 7 10 cron.weekly run-parts --report /etc/cron.weeklyque significa que el trabajo semanal se ejecuta cada 7 días con un retraso de 10 minutos.
Gabriel Staples
Pero ... No sé cuándo se ejecuta realmente anacron o cómo determina eso. ¿Vos si?
Gabriel Staples
8

@weekly es el equivalente a: 0 0 * * 0

Funcionará a las 00:00 el domingo.

Trevor Tippins
fuente
0

La respuesta se encuentra en la página de manual del crontab, ( man 5 crontab):

Se admiten estos "apodos" de especificación de tiempo especial, que reemplazan los 5 campos de fecha y hora iniciales, y tienen el prefijo '@':

@reboot    :    Run once after reboot.
@yearly    :    Run once a year, ie.  "0 0 1 1 *".
@annually  :    Run once a year, ie.  "0 0 1 1 *".
@monthly   :    Run once a month, ie. "0 0 1 * *".
@weekly    :    Run once a week, ie.  "0 0 * * 0".
@daily     :    Run once a day, ie.   "0 0 * * *".
@hourly    :    Run once an hour, ie. "0 * * * *".

Entonces, es 0 0 * * 0, que es 00:00 (en cualquier fecha de cualquier mes), siempre que sea domingo (día laborable 0).

mwfearnley
fuente