Cockpit-Add-on

Cronjobs und systemd-Timer in Cockpit verwalten

Alles, was auf einem Server geplant ist, auf einer Cockpit-Seite: sichere Änderungen an der Crontab, das Ergebnis jedes Laufs, Jetzt ausführen und Umwandeln in systemd-Timer.

  • Stabil
  • Version 2.7.4
  • Apache-2.0
  • Cockpit
  • Debian & Ubuntu
  • Fedora & RHEL
  • openSUSE
Cron Jobs in Cockpit: die letzten Ergebnisse, die nächsten 24 Stunden und die Crontab von root

Das Problem

Cron arbeitet leise. Zu leise.

Auf Servern ohne Mailprogramm geht die Ausgabe von cron verloren: Ein Job, der scheitert, scheitert ohne ein Wort.

Ein Job läuft in der Shell, aber nicht in cron, weil cron ihm eine andere Umgebung gibt.

Dateien in /etc/cron.d werden still übersprungen, wenn Name, Besitzer oder Rechte nicht passen.

Funktionen

Was es kann

Alles an einem Ort

Die Crontab von root, /etc/crontab, /etc/cron.d, die Crontabs anderer Benutzer, die periodischen Skripte und systemd-Timer. Zeitpläne in Worten, und Dateien, die cron überspringen würde, mit dem Grund markiert.

Die nächsten 24 Stunden

Eine Zeitleiste aller Cronjobs und Timer. Jobs, die in derselben Minute starten, werden hervorgehoben.

Sichere Änderungen

Zeilen, die du nicht anfasst, bleiben byte-genau. Jede Änderung ist ein gesperrter Schritt, nur wenn die Crontab noch die angezeigte ist, nach einem Backup, und wird danach zurückgelesen.

Das Ergebnis jedes Laufs

Mit eingeschalteter Aufzeichnung behält ein Job Exitcode, Dauer und Ausgabe seiner letzten 20 Läufe, auch ohne Mail. Timer zeigen ihre Läufe aus dem Journal.

Jetzt ausführen

Startet einen Job sofort mit der Umgebung, die cron ihm auf diesem Server gibt, zeigt die Ausgabe live und kann ihn stoppen.

In einen systemd-Timer und zurück

Legt Service und Timer mit demselben Zeitplan an, geprüft mit systemd-analyze. „Zurück zu cron“ macht es in einem Schritt rückgängig.

Bilder

Sicherheit

  • Befehle gehen als Argumente an Programme, nie als Shell-Code.
  • Eine Crontab wird nur ersetzt, wenn sie noch exakt der angezeigten Fassung entspricht; vorher entsteht ein Backup.
  • Das Umwandeln bricht ab, wenn systemd den Job zu anderen Zeiten ausführen würde als cron.
  • Änderungen brauchen Administratorrechte in Cockpit. Ohne sie zeigt die Seite die System-Crontabs und Timer und nichts von anderen Benutzern.

Installieren

Installation

Voraussetzungen

  • Cockpit (getestet mit 360 und 362)
  • cron unter Debian und Ubuntu oder cronie unter Fedora, RHEL und Nachbauten, Arch und openSUSE
  • systemd, optional: für Timer, ihre Einträge in der Zeitleiste und das Umwandeln

Aus der Azentrius-Paketquelle

Für Debian, Ubuntu, Fedora und RHEL. Richte die Paketquelle einmal ein:

# Debian und Ubuntu
curl -fsSLO https://packages.azentrius.com/azentrius-repository.deb
sudo apt install ./azentrius-repository.deb
sudo apt update

# Fedora und RHEL
sudo rpm --import https://packages.azentrius.com/azentrius.asc
sudo dnf install https://packages.azentrius.com/azentrius-repository.rpm

Installiere dann Cron Jobs in Cockpit unter Anwendungen oder auf der Konsole:

sudo apt install cockpit-cronjobs    # Debian, Ubuntu
sudo dnf install cockpit-cronjobs    # Fedora, RHEL

Die Updates deines Systems halten es aktuell.

Aus den Dateien eines Releases

Unter openSUSE ist das der einzige Weg. Jedes Release enthält .deb, .rpm, SHA256SUMS und einen signierten Build-Nachweis. Prüfe beides vor der Installation:

sha256sum --ignore-missing -c SHA256SUMS
gh attestation verify <datei> --repo Azentrius/cockpit-cronjobs

Einzelheiten, auch zu openSUSE, stehen im README.

Fragen

Funktioniert es ohne systemd?

Ja. systemd braucht es nur für Timer, ihre Einträge in der Zeitleiste und das Umwandeln.

Welche Distributionen werden unterstützt?

Debian und Ubuntu mit cron; Fedora, RHEL und Nachbauten, Arch und openSUSE mit cronie.

Kann ich die Crontabs anderer Benutzer bearbeiten?

Ja, mit Administratorrechten in Cockpit. Sie werden über crontab -u geändert und bekommen eigene Backups.

Was passiert mit Zeilen, die ich nicht anfasse?

Sie bleiben byte-genau. Vor jeder Änderung entsteht ein Backup der vorigen Fassung.

Wie werden Läufe aufgezeichnet?

Über ein kleines Skript, das die letzten 20 Läufe mit bis zu 64 KiB Ausgabe speichert. Mail von cron funktioniert weiter.

Kann ich von einem systemd-Timer zurück zu cron?

Ja. „Zurück zu cron“ macht das Umwandeln in einem Schritt rückgängig: Die Zeile ist wieder genau wie vorher aktiv, Timer und Units sind entfernt.

Was es unterscheidet

Cockpit verwaltet systemd-Timer unter „Dienste“, hat aber keine Seite für cron. Allgemeine Web-Oberflächen wie Crontab UI laufen als eigener Dienst mit eigenem Port und Login; Cron Jobs nutzt die Anmeldung und die Administratorrechte von Cockpit.

Weiterführend

Ebenfalls von Azentrius