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

BefehlZeigt
crontab -lEigene Cron-Jobs
sudo crontab -u USER -lCron-Jobs eines Benutzers
cat /etc/crontabSystemweite Crontab
ls /etc/cron.daily/Tägliche System-Jobs
systemctl list-timersAktive systemd-Timer