Mit der Crontab-GUI Zeit zeitgesteuerte Jobs verwalten

Aus LinuxUser 06/2022

Mit der Crontab-GUI Zeit zeitgesteuerte Jobs verwalten

© Sergii Gnatiuk / 123RF.com

Mit der Zeit gehen

Mit Zeit erstellen und bearbeiten Sie Aufrufe von Kommandos, die nur einmal zu einem bestimmten Zeitpunkt oder auch regelmäßig laufen sollen. Es dient als grafisches Frontend für die beiden Werkzeuge Cron und At.

Über die Einträge in der Datei /etc/crontab (meist schlicht als Crontab apostrophiert) verwalten Sie das regelmäßige zeitgesteuerte Ausführen von Programmen. Im Gegensatz dazu führt das Kommando At Aufträge nur einmal zu einem bestimmten Zeitpunkt aus. Dazu benutzt es eine Art Auftragsbuch, in dem Sie die auszuführenden Kommandos mit dem geplanten Zeitpunkt der Ausführung ablegen.

Cron arbeitet etwas anders. Die Crontab enthält die Einträge für das Gesamtsystem, die Dateien unter /var/spool/cron/crontabs/ die benutzerspezifischen Einträge. Wie die Einträge aussehen dürfen, erklärt Ihnen der Artikel “Pünktlich ausgeführt” von Jürgen Jentsch [1]. Auch wenn der Artikel schon zwei Jahrzehnte alt ist, gilt das beschriebene Format für die Einträge in Crontab noch heute.

Jede Zeile in Crontab beschreibt einen einzelnen Auftrag vollständig. Bei der Angabe der Aufträge gilt es, sorgfältig vorzugehen. Das Format der Einträge ist nicht trivial, aber erlernbar. Jeder Inhaber eines LPIC-1-Zeugnisses musste sich da durchbeißen. Trotz aller Sorgfalt kann es aber passieren, dass der Auftrag nie anläuft oder zu einem anderen Zeitpunkt ausgeführt wird als vorgesehen. Mit einer grafischen Bedienoberfläche (GUI) sinkt die Fehlerrate auch für versierte Benutzer erheblich.

Einer geeigneten GUI für zeitgesteuerte Aufrufe war bislang kein Erfolg gegönnt, wie wir bereits vor gut 20 Jahren erörtert haben [2]. Das damalige Fazit war ernüchternd, weil keines der untersuchten Werkzeuge eine vernünftig bedienbare Ergänzung zu Crontab und At bot. Kritisiert wurde, dass die Anwendungen teils nicht einmal die vollständige Syntax beherrschten. Auch bestehende, manuell erzeugte Crontab-Tabellen ließen sich nicht verlust- und konfliktfrei in die GUI übernehmen, geschweige denn bearbeiten und speichern. Zwei Jahrzehnte später hat sich an der Situation nichts geändert, denn die Entwicklung der damals beschriebenen grafischen Werkzeuge – Kcron, Kcrontab, Cromagnon, Gnome Schedule [3], Gnome Task Scheduler [4] und Vcron – steht still.

Insofern erscheint es höchst erfreulich, dass das im Folgenden vorgestellte Werkzeug namens Zeit [5] hier neu ansetzt. Die Entwicklung von Zeit begann bereits 2015, inzwischen darf die Software als stabil gelten. Zeit steht nur in englischer und russischer Sprache zur Verfügung. Die von uns getestete Version 0.6.0 stammt vom 10. Oktober 2021 und funktioniert problemlos.

Installation

Wir haben Zeit unter Debian 11 “Bullseye” getestet. Bislang fehlt das Programm in den offiziellen Paketquellen von Debian und Ubuntu. Sie erhalten es über das Github-Repository des Entwicklers [6] oder über ein Ubuntu-PPA [7].

Zur Installation von Zeit gibt es im Wesentlichen zwei Optionen. Plan A besteht aus dem Hinzufügen des PPA-Repos via apt-add-repository und der Installation der Pakete über die Paketverwaltung (Listing 1). Unter Debian steht diese Möglichkeit nicht zur Verfügung. Daher verfolgten wir Plan B und benutzten erfolgreich das vom Entwickler zum Herunterladen bereitgestellte Paket zeit. Nachdem wir es von der Projektseite bezogen hatten, spielten wir es mittels Dpkg auf dem Testsystem ein. Dabei traten bei uns keine Abhängigkeitsprobleme zu anderen Paketen auf. Sollte das Paket libnotify-bin fehlen, installieren Sie es mittels Apt nach. Ausgepackt benötigt Zeit etwa 450 KByte Plattenplatz.

Listing 1

Installation via PPA

$ sudo add-apt-repository ppa:blaze/main
$ sudo apt update
$ sudo apt install zeit

Passt keines der fertigen Pakete für die von Ihnen verwendete Distribution, bleibt immer noch Plan C: das Herunterladen des Quellcodes aus dem Github-Repository und das nachfolgende Übersetzen. Diesen Schritt haben wir nicht getestet; es spricht aber nichts dagegen, das im Bedarfsfall zu tun. Zeit benutzt die Qt-Bibliotheken, weswegen Sie zum Bauen der Software die dazugehörigen Entwicklungspakete in das System einspielen müssen.

Bedienoberfläche

Zeit klinkt sich nach der Installation in das Anwendungsmenü im Bereich Zubehör ein. Gehen Sie den Weg über die Kommandozeile, rufen Sie es einfach mit zeit auf. Danach präsentiert es sich mit einer übersichtlichen, funktionalen Bedienoberfläche ohne Schnickschnack.

In der von uns benutzten englischsprachigen Version lauten die vier Einträge der Menüleiste Zeit, View (Ansicht), Tools (Werkzeuge) und Help (Hilfe). Unterhalb der Menüleiste finden Sie sechs Knöpfe, die Sie zum Teil erst dann aktivieren können, wenn Sie einen Auftrag in der Liste im darunterliegenden Hauptfenster ausgewählt haben.

Über die sechs Knöpfe fügen Sie Aufträge oder Kommandos hinzu, kopieren, ändern oder löschen diese und steuern Alarme sowie Timer (Abbildung 1). Ein Rechtsklick auf einen Auftrag öffnet ein Kontextmenü, über das Sie den ausgewählten Auftrag ein- und auskommentieren (Toggle), kopieren, ändern und wieder aus der Liste löschen können. Bitte beachten Sie, dass Zeit alle Änderungen unverzüglich in die jeweilige Crontab oder Tabelle für At überträgt. Es empfiehlt sich daher, vorab eine Sicherheitskopie der Crontab und der At-Tabelle anzulegen, um später keine bösen Überraschungen zu erleben.

Abbildung 1: Zeit mit der täglichen Erinnerung für das Mittagessen.

Abbildung 1: Zeit mit der täglichen Erinnerung für das Mittagessen.

Betriebsmodi

Zeit startet mit normalen Benutzerrechten ohne administrative Befugnisse. Sie bearbeiten damit also zunächst nur Ihre eigenen zeitgesteuerten Aufträge. Für systembezogene Aufträge setzen Sie das Häkchen unter dem Menüeintrag View | System Mode oder drücken [Strg]+[S]. Mit derselben Abfolge wechseln Sie später wieder in den Modus als normaler Benutzer zurück.

Weiterhin wählen Sie zwischen wiederkehrenden Aufträgen in der Crontab (Periodic Tasks), einmaligen Aufträgen für At (Nonperiodic Commands) und Umgebungsvariablen für Cron (Environment Variables). Diese Auswahl treffen Sie über das Menü View oder die Tastenkombinationen [Strg]+[P][Strg]+[N] sowie [Strg]+[E]. Im Ergebnis ändert sich einerseits die Beschriftung der Knöpfe auf >Task (Aufgabe), Command (Kommando) oder Variable sowie andererseits der Inhalt der entsprechende Dialogbox zur Feinjustierung.

Bitte beachten Sie, dass Kommandos für At voraussetzen, dass auch das Werkzeug at installiert ist. Ansonsten laufen Ihre Bemühungen für einmalige Aufträge ins Leere. Bei Crontab ist das eher unproblematisch, da Cron typischerweise zur Grundausstattung jedes Linux-Systems gehört und deswegen meist von Anfang an installiert ist. At dagegen bedarf meist einer nachträglichen Installation. In Debian GNU/Linux heißt das Paket schlicht at. Sie installieren es mittels Apt aus den Standardpaketquellen nach.

Aufträge hinzufügen

Für wiederkehrende Aufträge wählen Sie entweder den Menüpunkt Zeit | Add Task aus, benutzen den ersten Knopf aus dem Menü (Add Task) oder drücken [Strg]+[A]. Es öffnet sich ein Dialogfenster, in dem Sie den neuen Auftrag genauer definieren (Abbildung 2). In den oberen beiden Eingabefeldern legen Sie zunächst die Beschreibung und das auszuführende Kommando fest.

Abbildung 2: Der Eintrag für das Mittagessen um 12 Uhr von Montag bis Freitag.

Abbildung 2: Der Eintrag für das Mittagessen um 12 Uhr von Montag bis Freitag.

Danach spezifizieren Sie den Zeitpunkt der Ausführung. Basic erlaubt eine einfache Auswahl für jede Minute, stündlich, täglich, wöchentlich, monatlich oder für jeden Wochentag. Detaillierter wird es bei Advanced, wo Sie die Minute, die Stunde, den Tag, den Wochentag und den Monat fest angeben. Dabei benutzen Sie dieselbe Schreibweise wie in der Crontab, also beispielsweise 1-5 für Montag bis Freitag. Eine Kontexthilfe unterstützt Sie bei der korrekten Angabe der einzelnen Werte.

Unterhalb der Eingabefelder informiert Sie eine Box darüber, was die von Ihnen eingetragenen Werte bedeuten. Somit ist stets klar, wann das System den Auftrag ausführt. Beachten Sie bitte zudem die Checkbox darunter: Bei gesetztem Häkchen wird der Auftrag als aktiv eingetragen, ansonsten steht er nur als inaktiver Kommentar in der Tabelle. Mit einem Klick auf die Schaltfläche OK schließen Sie das Anlegen des neuen Auftrags ab.

Bei einmaligen Aufträgen heißt der Menüpunkt Add Command. Abbildung 3 zeigt das dazugehörige Dialogfenster. Neben der Beschreibung und dem Kommando legen Sie den Ausführungszeitpunkt fest. Mit einem Klick auf die Schaltfläche Now fügen Sie den aktuellen Zeitpunkt ein, über Reset setzen Sie die Eingabefelder zurück. Setzen Sie das Häkchen neben Show OSD Notification, erhalten Sie bei der Ausführung des Kommandos eine zusätzliche Mitteilung auf dem Bildschirm (“On-Screen Display”). Die Anzeige erleichtert die Übersicht, wenn das System Aufträge im Hintergrund ausführt.

Abbildung 3: Zeit führt das Kommando zum Erstellen des Backups einmalig kurz vor Mitternacht aus.

Abbildung 3: Zeit führt das Kommando zum Erstellen des Backups einmalig kurz vor Mitternacht aus.

Aufträge bearbeiten

Zum Bearbeiten eines bereits bestehenden Auftrags markieren Sie zunächst einen Eintrag in der Liste und wählen entweder den Menüpunkt Zeit | Modify Task aus oder klicken auf den dritten Knopf aus dem Menü (Modify Task). Alternativ benutzen Sie das Kontextmenü oder die Tastenkombination [Strg]+[M]. Bei einmaligen Aufträgen heißt der Menüpunkt hingegen Modify Command.

Je nach Auftragsart erscheint dasselbe Dialogfenster wie in Abbildung 2 oder Abbildung 3. Inhaltlich gilt dasselbe wie beim Anlegen eines neuen Auftrags. Mit einem Klick auf die Schaltfläche OK schließen Sie das Ändern eines Auftrags ab. Einen bestehenden Auftrag löschen Sie analog über das Menü Zeit | Delete Task, über den vierten Knopf im Menü (Delete Task) oder über [Strg]+[D]. Bei einmaligen Aufträgen heißt der Menüpunkt Delete Command.

Darüber hinaus lassen sich bestehende Aufträge auch kopieren. Tippen Sie dazu entweder auf den Menüpunkt Zeit | Copy Task oder den zweiten Knopf im Menü (Copy Task). Alternativ erstellt die Tastenkombination [Strg]+[C] eine Kopie. Bei einmaligen Aufträgen nennt sich der Menüpunkt Copy Command. Zeit fügt den kopierten Auftrag am Ende der Auftragsliste hinzu, wo Sie ihn nun nach Belieben anpassen.

Auftragsliste

Die GUI bietet zwei Möglichkeiten, um die Darstellung in der Auftragsliste anzupassen. Zum einen lassen sich die Aufträge anhand eines Suchtexts filtern. Diese Funktion aktivieren Sie entweder über den Menüpunkt View | Show Filter oder mithilfe der Tastenkombination [Strg]+[F].

Danach erscheint unterhalb der Auftragsliste ein Eingabefeld für den Filtertext, wobei Zeit nur reinen Text verarbeitet, jedoch keine regulären Ausdrücke. Den Text interpretiert Zeit unabhängig von der Groß- und Kleinschreibung und durchsucht dann sowohl die Beschreibung als auch die Ausführungszeitpunkte und das hinterlegte Kommando.

Möglichkeit zwei ist eine gekürzte Textdarstellung. Diese Funktion aktivieren Sie entweder über den Menüpunkt View | Shorten Text oder über [Strg]+[H]. Bei unseren Tests zeigte diese Funktion keinen Effekt, vielleicht war aber auch einfach nur unser gewählter Beschreibungstext nicht lang genug.

Alarm und Timer

Spannend ist, dass Sie mit Zeit auch Alarme und Stoppuhren setzen können. Erstere erreichen Sie über den Menüpunkt Tools | Alarm beziehungsweise über [Strg]+[L]. Im Dialogfenster legen Sie eine Beschreibung zum Alarm fest, einen Audioplayer samt abzuspielender Musikdatei sowie die Zeitpunkte, an denen der Alarm ausgelöst werden soll (Abbildung 4).

Abbildung 4: Mit <span class="ui-element">Alarm</span> lassen sich auch Kl&auml;nge &uuml;ber einen Medienplayer wie VLC abspielen.

Abbildung 4: Mit Alarm lassen sich auch Klänge über einen Medienplayer wie VLC abspielen.

Das Dialogfenster für eine Stoppuhr (Timer) sieht fast identisch wie das in Abbildung 4 aus. Es gibt lediglich eine zusätzliche, mit Show OSD Notification betitelte Auswahlbox für ein Mitteilungsfenster (Notification), die regelt, ob Zeit beim Ablaufen der Stoppuhr eine Mitteilung auf dem Desktop einblendet. Sie erreichen die Funktion über den Menüpunkt Tools | Timer oder über [Strg]+[T].

Fazit und Alternativen

Zeit lief im Test anstandslos und integrierte sich sauber ins System. Auch die erzeugten Einträge für die Crontab und At sind makellos (Abbildung 5).

Abbildung 5: Die mit Zeit bearbeitete Crontab-Tabelle ist frei von Fehlern.

Abbildung 5: Die mit Zeit bearbeitete Crontab-Tabelle ist frei von Fehlern.

Können Sie sich mit Zeit nicht so recht anfreunden, gibt es auch etliche webbasierte Werkzeuge, die zumindest das Erstellen der Crontab-Einträge erleichtern. Ein Kandidat dafür wäre Crontab Guru [8], wo Sie sich den Eintrag zunächst im Web-Interface zusammenklicken und das Ergebnis dann in die Crontab des Systems übertragen (Abbildung 6).

Abbildung 6: Die Webseite Crontab Guru hilft, den Crontab-Eintrag zu formulieren.

Abbildung 6: Die Webseite Crontab Guru hilft, den Crontab-Eintrag zu formulieren.

Als sehr hilfreich empfinden wir bei Crontab Guru die Beschreibung über dem grauen Eingabefeld, da sie die Crontab-Angabe umgangssprachlich übersetzt. Das graue Feld in der Mitte dient als Eingabefeld und erlaubt, den jeweiligen Wert direkt zu verändern, woraufhin sich die Beschreibung anpasst. Unterhalb des Eingabefelds finden Sie Erklärungen zur jeweiligen Spalte – Minute, Stunde, Tag, Monat und Wochentag – sowie die für jede Spalte zulässigen Werte.

Als Web-Frontend vornehmlich für den Server-Einsatz fungiert Crontab-ui [9]. Das in Javascript geschriebene Werkzeug (Abbildung 7) bietet umfangreiche Möglichkeiten. Neben der Möglichkeit zum direkten Verändern der Crontab-Einträge offeriert es Funktionen zum Erstellen von Backups der Crontab sowie zum manuellen Starten, Pausieren und Beenden von Aufträgen. (cla)

Abbildung 7: Das webbasierte Crontab-ui ist besonders auf Servern n&uuml;tzlich.

Abbildung 7: Das webbasierte Crontab-ui ist besonders auf Servern nützlich.

Über den Autor

Frank Hofmann arbeitet zumeist von unterwegs, bevorzugt in Berlin, Genf und Kapstadt, als Entwickler, Trainer und Autor. Er gehört zu den Verfassern des Debian-Paketmanagement-Buchs.

Infos

  1. Cron und At: Jürgen Jentsch, “Pünktlich ausgeführt”, LU 06/2002, S. 81, https://www.linux-community.de/ausgaben/linuxuser/2002/06/programme-zeitgesteuert-abarbeiten/

  2. Crontab: Patricia Jung, “Auftragsersteller vom Dienst”, LU 01/2001, S. 77, https://www.linux-community.de/ausgaben/linuxuser/2001/01/crontabellen-per-mausklick/

  3. Gnome Schedule: http://gnome-schedule.sourceforge.net

  4. Gnome Task Scheduler: https://piki.org/patrick/gat

  5. Zeit auf Launchpad: https://launchpad.net/zeit

  6. Github-Seite von Zeit: https://github.com/loimu/zeit

  7. Zeit-PPA: https://launchpad.net/~blaze/+archive/ubuntu/main/+packages

  8. Crontab Guru: https://crontab.guru

  9. Crontab-ui: https://github.com/alseambusher/crontab-ui

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 06/2022 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben