Meistens werden Timer als Ersatz für Cron verwendet. Es bietet uns eine integrierte Unterstützung für Kalenderzeitveranstaltungen. Der Vorteil von Timern gegenüber Cronjobs besteht darin, dass sie die feiner körnigen Kontrollen von Ereignissen liefern. Diese werden verwendet, wenn eine Aufgabe eine Planung eines Linux -Betriebssystems erfordert. Wenn wir beispielsweise einen Prozess beim Stiefeln unserer Maschine starten möchten, verwenden wir die Timer zu diesem Zweck. Zuvor war Cron das Werkzeug, um diese Art von Jobs zu erledigen. Aber heutzutage werden Timer für diese Zwecke verwendet.
Timer sind fast wie Cron in einer Weise wie Cron, die beide einen Ansatz und einen Mechanismus für die Planung von Aufgaben im Linux -Betriebssystem bieten. Cron hat seine Nachteile, weshalb Timer es ersetzen. Wenn wir beispielsweise unsere Sicherung um 5 Uhr abends planen möchten und irgendwie unser System zwischen 4:50 und 5:10 abgeschaltet wird, überspringt Cron in diesem Fall das Backup, was den Zweck der Planung tötet.
Um mit Timer zu arbeiten, brauchen wir die folgenden Dinge als Voraussetzungen:
Die Funktionen der Systemd -Timers benötigen zwei Konfigurationsdateien, nämlich:
Timereinheit: Die Timer -Einheit verfolgt, wann die Servicedateien verwendet werden sollen. Sie verwenden eine Erweiterung von “.Timer".
Serviceeinheit: Dies sind Einheitskonfigurationsdateien. Sie verwalten und definieren die Systemprozesse. Sie haben ".Service -Erweiterung wie zuvor erläutert.
Jetzt diskutieren wir, wie wir eine automatisierte Serversicherung planen können. Ein weiterer Vorteil des SystemD -Dienstes besteht darin, dass Ihre Aufgaben nicht mehrere Instanzen haben können. Wenn wir irgendwie eine Aufgabe beginnen, während sie bereits gestartet ist, überspringt es den Start -Stiel und hält sie bis zur aktuellen Laufaufgabe abgeschlossen. Nachdem wir unseren Systemd -Dienst konfiguriert und geplant haben, erstellen wir eine Datei mit demselben Namen wie unser Dienst.
Der einzige Unterschied ist, dass es eine Erweiterung von “hat“.Timer “und nicht des Dienstes. Zum Beispiel haben wir einen Dienst mit dem Namen "XYZ". In diesem Fall haben wir „xyz.Service ”als unseren Servicenamen und„ xyz.Timer “als Name unseres Timers. Eine andere Sache, die Sie beachten sollten, ist, dass diese beiden Dateien im selben Verzeichnis liegen müssen.
Schritte zum Erstellen eines Systemd -Timers
Erstellen Sie ein Testskript
Dies ist ein grundlegendes Bash -Skript als Beispiel:
Linux@Linux-virtualBox: ~ $ Nano-Test.Sch
Das vorherige Skript druckt das Datum.
Erstellen Sie eine Dienstdatei
Jetzt erstellen wir eine Servicedatei oder ein Gerät, um das Bash -Skript auszuführen.
linux@linux-virtualbox: ~ $ nano/etc/systemd/system/neu.Service
Dies ist ein Beispielskript zum Erstellen der Dienstdatei. Es hat zwei Optionen: einer ist „Einheit“ und der andere ist „Service“. In diesem Schritt erzählen wir zunächst das System des Namens des Geräts und was diese Einheit tut. Dann definieren wir einen Dienst mit der Art von „einfach“. Zuletzt definieren wir, dass der Dienst im Fehlerfall beginnt.
Erstellen Sie eine Timerdatei
Nach dem Erstellen der Dienstdatei erstellen wir jetzt eine Timerdatei. Wir führen den folgenden Befehl aus, um eine Timer -Datei zu erstellen:
linux@linux-virtualbox: ~ $ nano/etc/systemd/system/test.Timer
Es hat drei Optionen: "Einheit", "Timer" und "Installation". Nach dem Ausführen des Befehls definieren wir erneut, was unsere Einheit tut. Es hat eine "Timer" -Option. Mit der Hilfe sagen wir das System, wenn unser Skript ausgeführt wird. Die letzte Option, "Installation". Diese Option ist nur aktiviert, wenn ein Dienst mit Hilfe von SystemCTL aktiviert ist.
Lassen Sie uns nun die Optionen ausführlicher besprechen, um die Timer besser in den Griff zu bekommen.
Einheit: Dies gibt das Gerät an, das wir einschalten möchten, wenn der Timer ausgeht. Der übergebene Parameter ist der Name einer Einheit, deren Erweiterung nicht sein darf.Timer". Wenn wir dies nicht tun können oder den Einheitsnamen nicht übergeben möchten, ist der Standardwert der Dienst, der den gleichen Namen wie der Name des “hat“.Timer “in diesem Fall. Wie bereits erwähnt, ist der beste Ansatz, dass wir den Namen des Dienstes und den Namen des Timers gleich halten sollten.
Timer: Die Timer -Option trägt alle Informationen über den definierten Timer, der definiert ist. In der Timer -Option finden wir alle Einstellungen, die wir zum Auslösen des Timers benötigen. Die Timerabschnitte haben viele Optionen wie:
OnactiveSec =, Onbootsec =, onStartupsec =, OnunitactiveSec =, OnunitinactiveSec =
Im Abschnitt Timer geben wir dem System auch mit.
Der Timer -Abschnitt hat auch eine sehr nützliche und wichtige Option, nämlich:
OnCalender = sets
Diese Option definiert, wie häufig eine Aufgabe ausgeführt wird. Wenn wir beispielsweise täglich eine Aufgabe planen möchten, verwenden wir diese Option wie "OnCalendar = Daily". Dies führt die Aufgabe täglich aus.
Wenn Sie genauer sein möchten, können Sie auch eine bestimmte DateTime nach Ihren Anforderungen übergeben. Eine andere Sache, die Sie während der Arbeit mit Timer beachten sollten, ist, dass die täglichen Trigger immer um Mitternacht sind, was eine Spitzenzeit in Computersystemen ist. Um die Probleme dabei zu vermeiden, empfehlen wir Ihnen, das „randomizedelaysec =“ zu verwenden. Es verzögert den Zeitplan zufällig mit einem Unterschied von wenigen Sekunden. Es erfordert einen Wert, der die Sekunden darstellt, die der Timer verzögert werden kann.
Das Problem ist, dass täglich um 12 Uhr immer ausgelöst wird. Weekly wird immer am Montag Mitternacht ausgelöst. Und jährlich wird am ersten Januar immer ausgelöst. All dies sind Spitzenzeiten und es gibt einen Netzwerkausfall während dieser überall.
Aktivieren und starten Sie den Timer
Dies ist der letzte Schritt unserer Aufgabe. Wir führen diesen Schritt systematisch aus. Um diese Aktivität auszuführen, müssen wir ein „Dämon-Relada“ durchführen. Um festzustellen, ob eine neue Datei erstellt oder eine alte Datei aktualisiert wird, wird das gesamte System neu geladen.
Fehlerbehebung
Manchmal können wir nicht alle Probleme im Voraus erfassen. Im Systemd -Timer können wir sicherstellen. Dazu verwenden wir den Befehl „systemd-analyze-uswifify“. Dieser Befehl hilft uns, ein potenzielles Problem herauszufinden und es entsprechend zu beheben.
Es gibt auch andere Befehle, die uns bei der Fehlerbehebung und Diagnose unserer Timer helfen. Zum Beispiel gibt es einen Befehl, der uns hilft, zu überprüfen, ob unser Dienst erfolgreich ausgeführt wird oder nicht. Der Befehl lautet wie folgt:
linux@linux -virtualBox: ~ $ sudo journalctl -s heute -f -u Test.Service
Dieser Befehl zeigt uns, wann der Dienst zuletzt gestartet wurde, und das Ergebnis unseres Bash -Befehls, wie im folgenden Snippet gezeigt:
Abschluss
Wir haben den Systemtimer untersucht. Nachdem wir eine detaillierte Überprüfung dessen, was ein Systemtimer ist und seine Arbeit ist.