Ich plane einige Aufgaben mit crontab.
Was passiert, wenn mein Computer während der geplanten Zeit heruntergefahren oder ausgeschaltet wird?
Wird jeder verpasste Cron-Job ausgeführt, nachdem der Computer eingeschaltet wurde, oder werden verpasste Jobs für diesen Tag ignoriert? Wenn verpasste Jobs nicht fortgesetzt werden, gibt es eine Möglichkeit, cron so zu konfigurieren, dass die verpassten Tasks ausgeführt werden, nachdem der Computer wieder eingeschaltet wurde?
Antworten:
Wenn Ihr Computer heruntergefahren wird (oder der Cron-Daemon ansonsten nicht ausgeführt wird), werden Cron-Jobs nicht gestartet.
Wenn Sie Aufträge haben, die Sie später ausführen möchten, während der Computer heruntergefahren ist, verwenden Sie anacron. Weitere Informationen finden Sie unter "man anacron", "man anacrontab" oder in der Datei / etc / anacrontab.
Ubuntu verwendet standardmäßig Anacron für crontab-Einträge in:
Die verbleibenden crontabs müssen vom Haupt-Cron-Daemon verarbeitet werden.
ANMERKUNGEN
Anacron selbst wird nicht als Daemon ausgeführt, sondern benötigt Systemstart-Skripte und cron selbst, um ausgeführt zu werden.
Auf der Ubuntu 8.04-Box, die ich gerade betrachte, wird /etc/init.d/anacron beim Booten ausgeführt und jeden Morgen um 07:30 Uhr erneut von cron.
Die README-Datei unter /usr/share/doc/anacron/README.gz enthält etwas mehr Informationen als in den Manpages enthalten.
Beispiele
Fügen Sie für einfache "tägliche", "wöchentliche", "monatliche" Jobs eine Kopie oder einen Symlink zum Skript in eines der oben genannten Verzeichnisse /etc/cron.{daily|weekly|monthly} ein. Anacron sorgt dafür, dass es täglich / wöchentlich / monatlich ausgeführt wird. Wenn Ihr Computer an dem Tag ausgeschaltet ist, an dem die "wöchentlichen" Skripts normalerweise ausgeführt werden, werden sie beim nächsten Einschalten des Computers ausgeführt.
Angenommen, Sie haben hier ein Skript: /usr/local/sbin/maint.sh
Und wenn Sie es alle drei Tage ausführen möchten, sieht der Standardeintrag in / etc / crontab folgendermaßen aus:
Wenn Ihr Computer am 3. des Monats nicht um 00:00 Uhr eingeschaltet war, wurde der Auftrag erst am 6. ausgeführt.
Damit der Job stattdessen am vierten ausgeführt wird, wenn der Computer ausgeschaltet ist, und der dritte nicht ausgeführt wird, verwenden Sie dies in / etc / anacrontab (vergessen Sie nicht, die Zeile aus / etc / crontab zu entfernen):
Die "Verzögerung" von "5" oben bedeutet, dass anacron 5 Minuten wartet, bevor es diesen Job ausführt. Die Idee ist zu verhindern, dass Anacron Dinge sofort beim Booten abfeuert.
quelle
anacron
Installieren Sie dascronie-anacron
Paket , um es zu verwenden .Dies hängt davon ab, welchen Cron-Scheduler Sie verwenden. Der einfache Vanilla-Cron-Daemon führt keine Aufgaben aus, die aufgrund von Systemausfällen übersehen wurden. Es gibt jedoch andere Cron-Scheduler, die speziell für diese Situation entwickelt wurden und dies für Sie erledigen. Die beiden häufigsten Beispiele sind Anacron und Fcron .
quelle
Bei ausgeschaltetem Computer geplante Aufgaben werden beim Wiedereinschalten des Computers nicht ausgeführt
quelle
Wenn Sie herunterfahren, während die Cron-Jobs ausgeführt werden, wird das System heruntergefahren und die Cron-Jobs werden angehalten (oder nicht ausgeführt).
Eine Alternative, in die Sie einchecken können, ist Anacron.
quelle
Kommt wirklich auf den Cron-Deamon an, den du ausführst. Vixie-cron überspringt nur die verpassten Cronjobs. fcron wird verpasste crons ausführen, sobald dies möglich ist. IIRC basiert ebenfalls auf vixie-cron. Wenn Sie also danach suchen, sollten Sie sich fcron ansehen.
quelle