Abhängig davon, wie Ihr Linux-System eingerichtet ist, können Sie nachsehen in:
/var/spool/cron/*
(Benutzer-Crontabs)/etc/crontab
(systemweite Crontab)
außerdem haben viele Distributionen:
-
/etc/cron.d/*
Diese Konfigurationen haben dieselbe Syntax wie/etc/crontab
-
/etc/cron.hourly
,/etc/cron.daily
,/etc/cron.weekly
,/etc/cron.monthly
Dies sind einfach Verzeichnisse, die ausführbare Dateien enthalten, die je nach Verzeichnisname stündlich, täglich, wöchentlich oder monatlich ausgeführt werden.
Darüber hinaus können Sie noch Jobs haben (siehe /var/spool/at/*
), Anacron (/etc/anacrontab
und /var/spool/anacron/*
) und wahrscheinlich noch andere, die ich vergesse.
Bei den meisten Crons (z. B. Vixie-Cron - Debian/Ubuntu-Standard, Cronie - Fedora-Standard, Solaris Cron ...) erhalten Sie die Liste der geplanten Cron-Jobs für den aktuellen Benutzer über:
$ crontab -l
oder für einen anderen Benutzer über
# crontab -l -u juser
Um die Crontabs für alle Benutzer zu erhalten, können Sie alle Benutzer durchlaufen und diesen Befehl aufrufen.
Alternativ können Sie die Spool-Dateien nachschlagen. Üblicherweise werden sie unter /var/spool/cron
gespeichert , z.B. für vcron folgendes Verzeichnis
/var/spool/cron/crontabs
enthält alle konfigurierten Crontabs aller Benutzer - mit Ausnahme des Root-Benutzers, der auch Jobs über die systemweite Crontab konfigurieren kann, die sich unter
befindet/etc/crontab
Bei Cronie (Standard bei Fedora/CentOS) gibt es einen .d
style config Verzeichnis auch für System-Cron-Jobs:
/etc/cron.d
(Wie immer die .d
Verzeichnis vereinfacht die Verwaltung von Konfigurationseinträgen, die Teil verschiedener Pakete sind.)
Der Einfachheit halber stellen die meisten Distributionen auch Verzeichnisse bereit, in denen verknüpfte/gespeicherte Skripte regelmäßig ausgeführt werden, z. B.:
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
Die zeitnahe Ausführung dieser Skripte wird normalerweise über run-parts
verwaltet Einträge im System crontab oder per Anacron.
Mit Systemd (z. B. auf Fedora, CentOS 7, ...) kann die periodische Jobausführung zusätzlich über Timer-Units konfiguriert werden. Die aktivierten Systemtimer können angezeigt werden über:
$ systemctl list-timers
Beachten Sie, dass Benutzer neben root möglicherweise auch systemd-Instanzen des Benutzers ausführen, in denen Timer konfiguriert sind. Beispielsweise wird bei Fedora standardmäßig eine Benutzer-Systemd-Instanz für jeden Benutzer gestartet, der gerade angemeldet ist. Sie können erkannt werden über:
$ ps aux | grep 'systemd[ ]--user'
Diese Benutzer-Timer können aufgelistet werden über:
$ systemctl --user list-timers
Eine Alternative zur Ausgabe des list-timers
Befehl ist, nach Timer-Unit-Dateien zu suchen (Muster:*.timer
) und symbolische Links zu ihnen in den üblichen System- und Benutzer-Systemd-Konfigurationsverzeichnissen:
$ find /usr/lib/systemd/ /etc/systemd -name '*.timer'
$ find /home '(' -path '/home/*/.local/share/systemd/user/*' \
-o -path '/home/*/.config/systemd/*' ')' \
-name '*.timer' 2> /dev/null
(Wie bei normalen Service-Units wird eine Timer-Unit aktiviert, indem ein symbolischer Link im rechten systemd-Konfigurationsverzeichnis erstellt wird.)
Siehe auch:
- ArchWiki-Artikel über Cron
- ArchWiki-Artikel über Systemd-Timer
Um alle Crons für den angegebenen Benutzer aufzulisten.
crontab -u Benutzername -l;
Um alle Crons für alle Benutzer aufzulisten
Führen Sie es als Superuser aus
#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do
crontab -l -u $user;
done