Cron-Jobs automatisieren wiederkehrende Aufgaben wie Backups, Log-Rotation oder Systemupdates. Mit wenigen Befehlen verschaffst du dir einen Überblick, welche Jobs auf deinem System aktiv sind.
Cron-Jobs des aktuellen Benutzers anzeigen
Der Befehl crontab -l listet alle Cron-Jobs des aktuell angemeldeten Benutzers auf:
crontab -l
Falls keine Jobs existieren, erscheint die Meldung no crontab for username.
Cron-Jobs anderer Benutzer anzeigen
Mit der Option -u und Root-Rechten kannst du die Cron-Jobs eines bestimmten Benutzers einsehen:
sudo crontab -u mark -l
Die crontab-Dateien haben Berechtigung 600 und gehören dem jeweiligen Benutzer. Ohne sudo bleibt der Zugriff auf fremde Crontabs verwehrt.
Alle Benutzer mit Cron-Jobs ermitteln
Die crontab-Dateien liegen je nach Distribution in unterschiedlichen Verzeichnissen:
- Debian/Ubuntu:
/var/spool/cron/crontabs - RHEL/CentOS:
/var/spool/cron
Liste den Inhalt auf, um zu sehen, welche Benutzer Cron-Jobs eingerichtet haben:
sudo ls -1 /var/spool/cron/crontabs
Ausgabe:
root
mark
Systemweite Cron-Jobs anzeigen
Neben den Benutzer-Crontabs gibt es systemweite Konfigurationen:
/etc/crontab- Die zentrale System-Crontab/etc/cron.d/- Verzeichnis für zusätzliche Cron-Konfigurationen
So zeigst du alle systemweiten Cron-Jobs an:
cat /etc/crontab /etc/cron.d/*
Periodische Verzeichnisse
Die meisten Distributionen bieten vordefinierte Verzeichnisse für regelmäßige Aufgaben:
/etc/cron.hourly/- Stündliche Jobs/etc/cron.daily/- Tägliche Jobs/etc/cron.weekly/- Wöchentliche Jobs/etc/cron.monthly/- Monatliche Jobs
Skripte in diesen Verzeichnissen werden automatisch zum passenden Zeitpunkt ausgeführt. Sie benötigen Ausführungsrechte (chmod +x).
Beispiel - alle wöchentlichen Jobs anzeigen:
ls -l /etc/cron.weekly/
Ausgabe:
-rwxr-xr-x 1 root root 813 Feb 10 2019 man-db
Eine leere Ausgabe bedeutet, dass keine wöchentlichen Jobs konfiguriert sind.
Systemd-Timer als Cron-Alternative
Moderne Distributionen mit systemd nutzen Timer als Alternative zu Cron. Diese Unit-Dateien enden auf .timer und starten zeitgesteuert andere Services.
Liste alle aktiven Timer auf:
systemctl list-timers
Die Ausgabe zeigt den nächsten Ausführungszeitpunkt, die letzte Ausführung und den zugehörigen Service:
NEXT LEFT LAST PASSED UNIT ACTIVATES
Sun 2020-02-16 00:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago logrotate.timer logrotate.service
Sun 2020-02-16 03:50:52 UTC 5h 44min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily.timer apt-daily.service
Mit der Option --all siehst du auch inaktive Timer:
systemctl list-timers --all
Zusammenfassung
| Befehl | Zeigt |
|---|---|
crontab -l | Eigene Cron-Jobs |
sudo crontab -u USER -l | Cron-Jobs eines Benutzers |
cat /etc/crontab | Systemweite Crontab |
ls /etc/cron.daily/ | Tägliche System-Jobs |
systemctl list-timers | Aktive systemd-Timer |