Vor kurzem wurde ich darauf hingewiesen, dass es eine Alternative zu Cron gibt, nämlich System-Timer.
Allerdings weiß ich nichts über Systemd oder Systemd Timer. Ich habe nur Cron verwendet.
Es gibt eine kleine Diskussion im Arch Wiki . Ich bin jedoch auf der Suche nach einem detaillierten Vergleich zwischen cron
und System-Timern, wobei ich mich auf die Vor- und Nachteile konzentriere. Ich benutze Debian, möchte aber einen allgemeinen Vergleich für alle Systeme, für die diese beiden Alternativen verfügbar sind. Dieser Satz kann nur Linux-Distributionen enthalten.
Hier ist was ich weiß.
Cron ist sehr alt und geht bis in die späten 1970er Jahre zurück. Der ursprüngliche Autor von cron ist Ken Thompson, der Schöpfer von Unix. Vixie Cron, von dem die Cron in modernen Linux-Distributionen direkte Nachfahren sind, stammt aus dem Jahr 1987.
Systemd ist viel neuer und etwas umstritten. Wikipedia teilt mir mit, dass die Erstveröffentlichung am 30. März 2010 war.
Meine aktuelle Liste der Vorteile von Cron gegenüber System-Timern ist:
Es wird garantiert, dass Cron in jedem Unix-ähnlichen System vorhanden ist, im Sinne einer installierbaren unterstützten Software. Das wird sich nicht ändern. Im Gegensatz dazu kann systemd in Zukunft in Linux-Distributionen verbleiben oder nicht. Es ist hauptsächlich ein Init-System und kann durch ein anderes Init-System ersetzt werden.
Cron ist einfach zu bedienen. Auf jeden Fall einfacher als systemd Timer.
Die entsprechende Liste der Vorteile von systemd-Timern gegenüber cron lautet:
- Systemd-Timer sind möglicherweise flexibler und leistungsfähiger. Aber ich möchte Beispiele dafür.
Zusammenfassend sind hier einige Dinge, die in einer Antwort zu sehen sind:
- Ein detaillierter Vergleich von Cron- und Systemd-Timern, einschließlich der Vor- und Nachteile der einzelnen Timer.
- Beispiele für Dinge, die ein anderer nicht kann.
- Mindestens ein Side-by-Side-Vergleich eines Cron-Skripts mit einem System-Timer-Skript.
quelle
Antworten:
Hier sind einige Punkte zu diesen beiden :
zu überprüfen, was Ihr Cron-Job wirklich macht, kann eine Art Chaos sein, aber alle System-Timer-Ereignisse werden sorgfältig im System-Journal protokolliert, wie die anderen System-Einheiten, basierend auf dem Ereignis, das die Dinge viel einfacher macht.
Systemd-Timer sind Systemd-Services mit all ihren Funktionen für Ressourcenmanagement, IO-CPU-Scheduling, ...
Es gibt eine Liste:
Mit der Option "Abhängigkeiten" können wie bei anderen systemd-Diensten Abhängigkeiten von der Aktivierungszeit bestehen.
Einheiten können auf verschiedene Arten aktiviert werden, auch Kombinationen können konfiguriert werden. Dienste können durch verschiedene Ereignisse gestartet und ausgelöst werden, z. B. durch Benutzer-, Boot- oder Hardwarestatusänderungen.
Viel einfachere Konfiguration einiger Dateien und einfacher Tags, um eine Vielzahl von Anpassungen basierend auf Ihren Anforderungen mit System-Timern vorzunehmen.
Aktivieren / Deaktivieren Sie das Ganze ganz einfach mit:
und töte alle Kinder des Jobs mit:
systemd-Timer können mit Kalendern und monotonen Zeiten geplant werden, was bei unterschiedlichen Zeitzonen und ...
Systemzeitereignisse (Kalender) sind genauer als Cron (scheint 1s Genauigkeit)
Systemzeitereignisse sind aussagekräftiger. Für wiederkehrende Ereignisse oder sogar Ereignisse, die einmal auftreten sollten, ist hier ein Beispiel aus dem Dokument :
Aus der Sicht der CPU-Auslastung weckt der System-Timer die CPU zur abgelaufenen Zeit, aber cron macht das öfter.
Timer-Ereignisse können basierend auf den Endzeiten von Ausführungen geplant werden. Zwischen den Ausführungen können einige Verzögerungen eingestellt werden.
Die Kommunikation mit anderen Programmen ist auch bemerkenswert. Manchmal ist es erforderlich, dass einige andere Programme Timer und den Status ihrer Aufgaben kennen.
quelle
man systemd.time
was dem zu widersprechen scheint: Nicht-lokale Zeitzonen außer UTC werden nicht unterstützt.Sozusagen direkt aus dem Maul des Pferdes: https://wiki.archlinux.org/index.php/Systemd/Timers#As_a_cron_replacement
Ein Auszug aus der obigen Seite:
quelle