Risposte:
Sto dando una risposta alternativa qui anche se Trevor ha ragione.
La @weeklyparola chiave cron fa esattamente come ha detto. Tuttavia , la maggior parte delle distribuzioni utilizza run-partsper eseguire i propri file crontab programmati (su base oraria, giornaliera, settimanale e mensile) che non utilizzano le parole chiave di cron.
Ad esempio , Ubuntu ha un file /etc/cron.weeklyche contiene un file separato per ogni cronjob.
Questo è generalmente definito in /etc/crontab
La versione karmica di 9.10 di Ubuntu include quanto segue /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 )
Quindi il crontab settimanale in Ubuntu viene eseguito alle 6.47 di domenica
Nota: quando cerchi manpage per implementazioni di crontab, vuoi usare man 5 crontabinvece di solo man crontab. Quest'ultimo ti darà solo la sintassi per il comando crontab. Il primo fornisce dettagli sull'implementazione di crontab.
So the weekly crontab in Ubuntu is run at 6.47am on Sunday. Questo non è corretto perché la test -x /usr/sbin/anacron ||parte del comando dice di eseguire SOLO le cose a destra ||se "/ usr / sbin / anacron" NON è eseguibile o non esiste, eppure esiste, quindi run-partsnon verrà mai effettivamente eseguito cron! Piuttosto, anacrondeve gestirlo, giusto? La tabella di Aanacron in "/ etc / anacrontab" mostra questo per ogni settimana: 7 10 cron.weekly run-parts --report /etc/cron.weeklyciò significa che il lavoro settimanale viene eseguito ogni 7 giorni con un ritardo di 10 minuti.
@weekly è l'equivalente di: 0 0 * * 0
Quindi funzionerà alle 00:00 di domenica.
La risposta sta nella manpage del crontab stesso, ( man 5 crontab):
Sono supportati questi "soprannomi" di specifiche temporali che sostituiscono i 5 campi iniziali di data e ora e sono preceduti dal carattere "@":
@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 * * * *".
Quindi, è 0 0 * * 0, che è 00:00 (in qualsiasi data di qualsiasi mese), purché sia domenica (giorno della settimana 0).