Antworten:
Ich gebe hier eine alternative Antwort, obwohl Trevor richtig ist.
Das @weekly
Schlüsselwort cron macht genau das, was er erwähnt hat. Die meisten Distributionen verwenden run-parts
jedoch ihre eigenen geplanten Crontab-Dateien (stündlich, täglich, wöchentlich und monatlich), bei denen die Schlüsselwörter von cron nicht verwendet werden.
/etc/cron.weekly
Zum Beispiel hat Ubuntu eine, die für jeden Cronjob eine eigene Datei enthält.
Dies ist allgemein definiert in /etc/crontab
Ubuntus karmische Version 9.10 enthält Folgendes /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 )
Die wöchentliche Crontab in Ubuntu findet am Sonntag um 6.47 Uhr statt
Hinweis: Wenn Sie nach Manpages für Crontab-Implementierungen suchen, möchten Sie diese man 5 crontab
anstelle von nur verwenden man crontab
. Letzteres gibt Ihnen nur die Syntax für den Befehl crontab. Ersteres gibt Ihnen Details zur Crontab-Implementierung.
So the weekly crontab in Ubuntu is run at 6.47am on Sunday
. Dies ist falsch, da der test -x /usr/sbin/anacron ||
Teil des Befehls besagt, dass NUR das Material rechts von ausgeführt werden soll, ||
wenn "/ usr / sbin / anacron" NICHT ausführbar ist oder nicht vorhanden ist, dies jedoch der Fall ist, sodass der Befehl run-parts
tatsächlich nie ausgeführt wird cron
! Vielmehr anacron
muss es seinen Umgang, nicht wahr? Die Tabelle von Aanacron in "/ etc / anacrontab" zeigt dies für wöchentlich: Dies 7 10 cron.weekly run-parts --report /etc/cron.weekly
bedeutet, dass der wöchentliche Job jeden 7. Tag mit einer Verzögerung von 10 Minuten ausgeführt wird.
@weekly entspricht: 0 0 * * 0
Also läuft es am Sonntag um 00:00 Uhr.
Die Antwort liegt in der Manpage für die Crontab selbst, ( man 5 crontab
):
Diese speziellen Zeitangaben "Spitznamen" werden unterstützt, die die 5 anfänglichen Zeit- und Datumsfelder ersetzen und denen das Zeichen '@' vorangestellt ist:
@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 * * * *".
Es 0 0 * * 0
ist also 00:00 Uhr (an jedem Datum eines jeden Monats), solange es Sonntag ist (Wochentag 0).