Respuestas:
Aquí estoy dando una respuesta alternativa a pesar de que Trevor es correcto.
La @weekly
palabra clave cron hace exactamente lo que mencionó. Sin embargo , la mayoría de las distribuciones utilizan run-parts
para 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.weekly
archivo 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 crontab
lugar 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.
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-parts
que nunca se ejecutará cron
! Por el contrario, anacron
debe estar manejando, ¿verdad? La tabla de Aanacron en "/ etc / anacrontab" muestra esto para semanalmente: lo 7 10 cron.weekly run-parts --report /etc/cron.weekly
que significa que el trabajo semanal se ejecuta cada 7 días con un retraso de 10 minutos.
@weekly es el equivalente a: 0 0 * * 0
Funcionará a las 00:00 el domingo.
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).