Prozesse mit systemd-Timer steuern

Zur rechten Zeit

Um beliebige Aufgaben automatisch auszuführen, kommen auf Linux-Systemen üblicherweise cron und anacron zum Einsatz. Allerdings bietet auch der System- und Service-Manager systemd eine ähnliche Funktion an. Diese kommt sogar mit zusätzlichen Features daher und gilt somit als echte Alternative zu den beiden Unix-Urgesteinen. Der Open-Source-Tipp zeigt, wie Sie solche systemd-Timer anlegen und verwalten können.
Funktioniert ein Rechner oder Dienst im Unternehmen nicht mehr, ist die IT-Abteilung die erste Anlaufstelle. Um Ausfälle bereits im Vorfeld zu vermeiden und ... (mehr)

Die beiden Tools cron und anacron kommen immer dann zum Einsatz, wenn Programme oder Skripte automatisch zu bestimmten Zeitpunkten oder in Intervallen starten sollen. Mit cron können Sie dies bis auf die Minute genau festlegen, anacron hingegen achtet darauf, dass ein Job unmittelbar gestartet wird, wenn ein bestimmtes Intervall bereits überschritten wurde.

Unix-Urgesteine cron und anacron

Ein konkretes Beispiel könnte so aussehen, dass Sie mit cron einen Job definieren, der jeden Montag Morgen um 06:30 abläuft. Wenn der Rechner, auf dem der Job laufen soll, allerdings zu diesem Zeitpunkt offline ist, dann startet der Job frühestens am Montag in der Woche darauf um 06:30 Uhr. Um dieses Problem zu lösen, definieren Sie mit anacron Intervalle, also beispielsweise einen Sieben-Tages-Intervall. Wird der Rechner erst wieder am Dienstag eingeschaltet, weil der Mitarbeiter am Montag krank war, so erkennt das Tool anhand einer Zeitmarke, dass das Intervall bereits um einen Tag überschritten wurde und startet den Job somit umgehend.

systemd-Unit-Typen

Bei systemd ist es so, dass Informationen zur Konfiguration der Services in unterschiedlichen Unit-Typen hinterlegt sind. Von Interesse in diesem Zusammenhang sind die Service- und Timer-Units. In den Service-Units definieren Sie den eigentlichen Job, der zu einem bestimmten Zeitpunkt laufen soll – also beispielsweise ein Programm oder Skript. In der dazugehörigen Timer-Unit definieren Sie dann den Zeitpunkt, zu dem dieser Job genau ablaufen soll. Hierfür stehen Ihnen eine Vielzahl von Parametern zur Verfügung, mit denen Sie den genauen Startzeitpunkt festlegen. So können Sie beispielsweise auch Event-basierte Zeitangaben vornehmen, also beispielsweise eine Zeit, die relativ zum letzten Bootvorgang oder dem Starten der eigentlichen systemd Service-Unit vergangen ist. Eine

...

Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2021