Anzeigen und Auflisten von Cron-Jobs mit Crontab
In diesem Artikel wird erklärt, wie man Cron-Aufträge mit dem Befehl crontab anzeigt und auflistet, damit Sie geplante Aufgaben effektiv verwalten können.
Was ist Crontab?
Crontab (kurz für “cron table”) ist eine Datei, die geplante Aufgaben im cron-System definiert. Jeder Benutzer auf einem System, einschließlich des Root-Benutzers, kann seine eigene Crontab haben, in der die zu automatisierenden Aufgaben festgelegt sind.
Die Datei crontab besteht aus Cron-Aufgaben in der folgenden Syntax:
* * * * * command_to_be_executed
| | | | |
| | | | ----- Tag der Woche (0 - 7) (Sonntag=0 oder 7)
| | ---------- Monat (1 - 12)
| | --------------- Tag des Monats (1 - 31)
| -------------------- Stunde (0 - 23)
------------------------- Minute (0 - 59)
Diese Struktur ermöglicht eine genaue Kontrolle darüber, wann Aufträge ausgeführt werden, und macht cron zu einem leistungsfähigen Automatisierungswerkzeug.
Auflisten von Cron-Jobs mit Crontab
Für die Verwaltung von Cron-Jobs ist der Befehl crontab das ideale Werkzeug. Hier erfahren Sie, wie Sie die Cron-Jobs für einen bestimmten Benutzer oder das System anzeigen können.
1. Eigene Cron-Jobs anzeigen
Um die Cron-Jobs Ihres aktuellen Benutzers anzuzeigen, führen Sie den folgenden Befehl im Terminal aus:
crontab -l
Dadurch werden alle geplanten Aufgaben für den derzeit angemeldeten Benutzer aufgelistet. Wenn es keine Cron-Aufgaben gibt, liefert der Befehl eine leere Liste oder die Meldung, dass es keine crontab für den Benutzer gibt.
Beispielhafte Ausgabe:
# m h dom mon dow Befehl
0 0 * * * /home/user/backup.sh
30 2 * * 7 /home/benutzer/scripts/cleanup.sh
In diesem Beispiel:
- Ein Sicherungsskript) wird jeden Tag um Mitternacht ausgeführt.
(backup.sh
- Ein Bereinigungsskript) wird jeden Sonntag um 2:30 Uhr ausgeführt.
(cleanup.sh
2. Auflisten von Cron-Jobs für einen anderen Benutzer
Wenn Sie über root- oder sudo-Rechte verfügen, können Sie Cron-Jobs für jeden Benutzer anzeigen, indem Sie das Flag
-u
sudo crontab -l -u Benutzername
Ersetzen Sie username durch den tatsächlichen Benutzernamen des Benutzers, dessen Cron-Jobs Sie sehen möchten.
Um zum Beispiel die Cron-Jobs für einen Benutzer namens john aufzulisten, führen Sie aus:
sudo crontab -l -u john
Damit werden alle geplanten Cron-Jobs für diesen Benutzer angezeigt.
3. Systemweite Cron-Jobs auflisten
Neben den benutzerspezifischen Cron-Jobs gibt es auch systemweite Cron-Jobs, die vom System- oder Root-Benutzer geplant werden. Diese werden in Verzeichnissen wie /etc/crontab, /etc/cron.d/ und dem Verzeichnis /var/spool/cron/crontabs gespeichert.
Um systemweite Cron-Jobs aufzulisten, können Sie die Datei /etc/crontab öffnen und anzeigen:
cat /etc/crontab
Die Ausgabe könnte wie folgt aussehen:
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin#
m h dom mon dow user command17 * * * * root cd / && run-parts –report /etc/cron.hourly
25 6 * * * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.weekly )
52 6 1 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.monthly )
In diesem Beispiel:
- dielaufen zur 17. Minute jeder Stunde.
/etc/cron.hourly-Jobs
- diewerden jeden Tag um 6:25 Uhr ausgeführt.
/etc/cron.daily-Jobs
- diewerden jeden Sonntag um 6:47 Uhr ausgeführt.
/etc/cron.weekly-Jobs
- wird am ersten Tag eines jeden Monats um 6:52 Uhr ausgeführt.
/etc/cron.monthly
Sie können die Aufträge in /etc/cron.d/ auch anzeigen, indem Sie Folgendes ausführen:
ls /etc/cron.d/
Jede Datei in diesem Verzeichnis kann zusätzliche Cron-Jobs für Systemdienste enthalten.
4. Auflisten der Cron-Jobs im Verzeichnis /var/spool/cron/
Die benutzerspezifischen Cron-Jobs werden normalerweise im Verzeichnis /var/spool/cron/crontabs gespeichert. Sie können zu diesem Verzeichnis navigieren und alle Cron-Job-Dateien auflisten:
ls /var/spool/cron/crontabs
Dadurch werden die crontab-Dateien für jeden Benutzer angezeigt. Um den Inhalt der crontab eines bestimmten Benutzers anzuzeigen, können Sie Folgendes ausführen:
cat /var/spool/cron/crontabs/Benutzername
Dies liefert die gleiche Ausgabe wie die Ausführung von crontab -l -u username.
Cron-Jobs bearbeiten
Wenn Sie Cron-Jobs ändern oder neue hinzufügen möchten, können Sie Ihre Crontab bearbeiten, indem Sie crontab ausführen:
crontab -e
Dadurch wird Ihre crontab im Standardtexteditor geöffnet, so dass Sie bestehende Aufträge hinzufügen oder ändern können.
Um zum Beispiel einen neuen Auftrag hinzuzufügen, der jeden Tag um 3:00 Uhr morgens ein Skript ausführt, würden Sie diese Zeile hinzufügen:
0 3 * * * /home/user/script.sh
Nach dem Speichern und Beenden der Datei wird der Auftrag sofort ausgeführt.
Allgemeine Crontab-Auflistungsbefehle
Hier finden Sie eine Kurzreferenz für das Auflisten von Cron-Jobs in verschiedenen Szenarien:
- Die Cron-Jobs des aktuellen Benutzers auflisten:
crontab -l
- Auflisten der Cron-Jobs eines anderen Benutzers (erfordert sudo):
sudo crontab -l -u Benutzername
- Systemweite Cron-Jobs auflisten:
cat /etc/crontab
- Alle Cron-Jobs inauflisten:
/etc/cron.d/
ls /etc/cron.d/
- Anzeigen der Cron-Jobs, die ingespeichert sind:
/var/spool/cron/crontabs/
ls /var/spool/cron/crontabs
Schlussfolgerung
Die Auflistung und Anzeige von Cron-Jobs mit crontab ist eine einfache, aber leistungsfähige Methode zur Verwaltung Ihrer geplanten Aufgaben in einem Unix-ähnlichen System. Unabhängig davon, ob Sie Ihre eigenen benutzerspezifischen Cron-Jobs oder systemweite automatisierte Aufgaben verwalten, können Sie mit diesen Befehlen sicherstellen, dass Ihre Jobs reibungslos und pünktlich ausgeführt werden.
Wenn Sie cron beherrschen, können Sie sich wiederholende Aufgaben automatisieren, Backups verwalten und sicherstellen, dass Ihre Skripte in Ihrer gesamten Umgebung einheitlich ausgeführt werden.