Wie kann ich eine Aufgabe am besten planen, die erst Jahre später ausgeführt werden soll? Beispielsweise die Ausführung eines Skripts nach 4 Jahren.
Ist Cron dafür die beste Methode?
Antwort1
Sie können Folgendes verwenden at
:
$ at 10am Jul 31 2030
warning: commands will be executed using /bin/sh
at> echo Hello
at> <EOT>
job 2 at Wed Jul 31 10:00:00 2030
$ atq
1 Sun Jul 31 10:00:00 2030 a user
$ atrm 1
Antwort2
Jedes Computersystem, das nach vier Jahren noch so unverändert läuft, dass ein Skript ohne Änderungen gültig bleibt, ist in gewisser Weise statisch. Jedes Planungssystem, das davon ausgeht, dass eine Box auch nach so langer Zeit noch dieselbe Funktion erfüllt, ist eher optimistisch. Festplattenfehler oder andere Probleme machen es wahrscheinlich, dass Sie feststellen, ob Ihre Backups die Speicherung der „vorübergehenden“ At-Jobs bewältigen oder nicht.
Es wäre wahrscheinlich robuster, sich stattdessen die Frage zu stellen: „Wie teste ich, ob Wartungsaufgabe X so ausgeführt wurde, dass die Lebensdauer der Daten über weitere N Monate hinaus verlängert wurde?“; z. B. alle Domänen erneuert, SSL-Zertifikate laufen nicht ab usw. Dann können Sie den Job täglich, wöchentlich, monatlich oder in einer anderen Häufigkeit ausführen, die höher als „jährlich“ ist. Dies bedeutet, dass der Code ausgeführt wird und Sie sicher sein können, dass er ausgeführt wird. Insbesondere, wenn das Tool seinen Erfolg irgendwo registriert.
Wenn alles andere fehlschlägt, kann ein gemeinsamer Abteilungskalender mit einer Reihe von Erinnerungen, die per E-Mail verschickt werden, nützlich sein. Sie können einigermaßen sicher sein, dass sich jemand die Mühe macht, alle Ereignisse zu migrieren, wenn der Kalender ersetzt oder in die Cloud migriert wird oder was auch immer, sodass die VIPs nichts erneut eingeben müssen. Ihre Erinnerung wird also „kostenlos“ migriert, ohne dass sich jemand an diese Aufgabe erinnern muss, die nur alle vier Jahre anfällt.