Systemd-Timer sind der moderne Ersatz für Cronjobs — zuverlässiger, besser ins System integriert und mit eingebauter Protokollierung. Auf einem typischen Debian- oder Ubuntu-Server laufen zwischen 8 und 20 Timer gleichzeitig: apt-daily, logrotate, fstrim, eigene Backup-Skripte und mehr.
Das Problem: systemctl list-timers zeigt zwar die nächsten Läufe, aber das Format ist sperrig, die Ergebnisse vergangener Läufe fehlen, und auf einen Blick sehen ob irgendetwas fehlgeschlagen ist — das geht so nicht. journalctl wäre die Alternative, aber dort muss man für jeden Timer einzeln suchen.
timer-report.sh löst das in einer Ausgabe: alle Timer, ihr letzter Lauf, ihr nächster Lauf und das Ergebnis — farbig hervorgehoben, damit Probleme sofort ins Auge springen.
Das Problem
Wer regelmäßig Server betreut, kennt die Situation: Ein Backup-Script meldet sich nicht mehr, ein Zertifikat läuft ab, ein Wartungsjob schlägt still fehl. systemctl list-timers zeigt nur die nächsten geplanten Läufe — aber nicht ob der letzte Lauf überhaupt geklappt hat.
Das manuelle Durchsuchen von journalctl -u backup.service -n 20 für jeden einzelnen Service ist zeitaufwendig. Besonders auf Homelab-Servern, wo man nicht täglich reinschaut, sammeln sich unbemerkte Fehler an.
Die Lösung
timer-report.sh fragt alle Informationen direkt über systemctl show ab — ohne Log-Parsing, ohne externe Tools, ohne Root-Rechte. Die Ausgabe ist tabellarisch, farbcodiert (grün = ok, gelb = nie gelaufen, rot = Fehler) und passt in ein Standard-Terminal.
Voraussetzungen
Das Script benötigt nur bash und systemctl — beides ist auf jedem modernen Debian/Ubuntu standardmäßig vorhanden. Root-Rechte sind nicht nötig, um System-Timer zu lesen.
- Bash 4.0 oder neuer
- systemd (getestet auf systemd 252+)
Verwendung
# System-Timer anzeigen (Standard)
bash timer-report.sh
# Nur fehlgeschlagene Timer anzeigen
bash timer-report.sh --failed
# Timer des aktuellen Benutzers anzeigen
bash timer-report.sh --user
# Hilfe
bash timer-report.sh --helpDas Script ändert nichts am System — es liest ausschließlich.