Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
Linux Verwaltung

Wie man Cron-Jobs mit Crontab anzeigt und auflistet

Das Cron-Dienstprogramm ist eines der grundlegendsten Tools in Unix-ähnlichen Betriebssystemen und ermöglicht es Benutzern und Administratoren, Befehle und Skripte automatisch zu definierten Zeiten oder Intervallen auszuführen. Ob Sie einen Produktionsserver verwalten, eine VPS Hosting-Umgebung pflegen oder Aufgaben auf einem lokalen Computer automatisieren – das Verständnis für die Arbeit mit Cron-Jobs ist eine wesentliche Fähigkeit für jeden Systemadministrator oder Entwickler.

Dieser umfassende Leitfaden erklärt alles, was Sie über das Anzeigen und Auflisten von Cron-Jobs mit dem crontab-Befehl wissen müssen, damit Sie Ihre geplanten Aufgaben mit Vertrauen und Präzision verwalten können.

Was ist Cron und warum ist es wichtig?

Cron ist ein zeitbasierter Job-Scheduler, der in Unix- und Linux-Betriebssystemen integriert ist. Er läuft kontinuierlich im Hintergrund als Daemon-Prozess und prüft jede Minute, ob geplante Aufgaben ausgeführt werden müssen. Diese Aufgaben — bekannt als Cron-Jobs — können von automatisierten Datenbank-Backups und Log-Rotation bis zum Versenden von E-Mails und zum Ausführen von Wartungsskripten reichen.

Für jeden, der einen Dedicated Server oder eine gemeinsame Umgebung verwaltet, sind Cron-Jobs unverzichtbar, um Systeme gesund zu halten, wiederholte Operationen zu automatisieren und sicherzustellen, dass kritische Prozesse ohne manuelle Intervention ausgeführt werden.

Was ist der Crontab-Befehl?

Crontab (Kurzform für „cron table”) ist sowohl der Name der Konfigurationsdatei, die geplante Aufgaben speichert, als auch das Befehlszeilenprogramm, das zum Verwalten dieser Dateien verwendet wird. Jeder Benutzer auf einem Unix-ähnlichen System – einschließlich des Root-Benutzers – kann seine eigene Crontab-Datei verwalten, die definiert, welche Aufgaben ausgeführt werden sollen und wann.

Crontab-Syntax erklärt

Jede Zeile in einer Crontab-Datei folgt einer strikten fünfteiligen Zeitangabe, gefolgt vom auszuführenden Befehl:

* * * * * command_to_be_executed
| | | | |
| | | | +----- Day of the week (0–7) [Sunday = 0 or 7]
| | | +---------- Month (1–12)
| | +--------------- Day of the month (1–31)
| +-------------------- Hour (0–23)
+------------------------- Minute (0–59)

Diese Struktur gibt dir präzise, granulare Kontrolle über die Aufgabenplanung – vom einmaligen Ausführen eines Skripts pro Jahr bis zur Ausführung eines Befehls jede einzelne Minute.

Häufige Crontab-Zeitausdrücke – Beispiele

AusdruckBedeutung
0 0 * * *Jeden Tag um Mitternacht
*/5 * * * *Alle 5 Minuten
30 2 * * 7Jeden Sonntag um 2:30 Uhr
0 3 1 * *Erster Tag jeden Monats um 3:00 Uhr
0 9-17 * * 1-5Jede Stunde von 9 Uhr bis 17 Uhr, Montag–Freitag

So listen Sie Cron-Jobs mit Crontab auf

Der crontab Befehl ist das primäre Dienstprogramm zum Verwalten und Überprüfen von Cron-Jobs. Nachfolgend finden Sie alle Methoden, die Sie kennen müssen.

1. Ihre eigenen Cron-Jobs anzeigen

Um alle Cron-Jobs anzuzeigen, die für den aktuell angemeldeten Benutzer geplant sind, führen Sie Folgendes aus:

crontab -l

Dieser Befehl liest und gibt die Crontab-Datei des aktuellen Benutzers aus. Wenn keine Cron-Jobs konfiguriert wurden, gibt das System entweder eine leere Ausgabe zurück oder zeigt eine Meldung wie:

no crontab for username

Beispielausgabe

# m h dom mon dow command
0 0 * * * /home/user/backup.sh
30 2 * * 7 /home/user/scripts/cleanup.sh

In diesem Beispiel:

  • Das Backup-Skript wird jeden Tag um Mitternacht (00:00) ausgeführt.
  • Das Cleanup-Skript wird jeden Sonntag um 2:30 Uhr ausgeführt.

2. Cron-Jobs für einen anderen Benutzer auflisten

Wenn Sie sudo oder Root-Rechte haben, können Sie die Cron-Jobs eines anderen Benutzers auf dem System mit dem -u Flag überprüfen:

sudo crontab -l -u username

Ersetzen Sie username durch den tatsächlichen Kontonamen. Zum Beispiel:

sudo crontab -l -u john

Dies ist besonders nützlich für Systemadministratoren, die geplante Aufgaben über mehrere Benutzerkonten auf einem Server überprüfen.

3. Systemweite Cron-Jobs auflisten

Neben benutzerspezifischen Crontabs verwalten Linux-Systeme mehrere Speicherorte für systemweite geplante Aufgaben. Diese werden normalerweise vom Root-Benutzer oder Systemdiensten verwaltet und an den folgenden Speicherorten gespeichert:

SpeicherortBeschreibung
/etc/crontabHauptsystemweite Crontab-Datei
/etc/cron.d/Verzeichnis für zusätzliche System-Cron-Dateien
/var/spool/cron/crontabs/Verzeichnis, das einzelne Benutzer-Crontab-Dateien speichert
/etc/cron.hourly/Skripte, die jede Stunde ausgeführt werden
/etc/cron.daily/Skripte, die jeden Tag ausgeführt werden
/etc/cron.weekly/Skripte, die jede Woche ausgeführt werden
/etc/cron.monthly/Skripte, die jeden Monat ausgeführt werden

Die Hauptsystem-Crontab anzeigen

cat /etc/crontab

Beispielausgabe

SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin

# m h dom mon dow user command
17 *  * * * 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 )

Beachten Sie, dass die System-/etc/crontab im Gegensatz zu Benutzer-Crontabs ein Benutzerfeld zwischen der Zeitangabe und dem Befehl enthält, das angibt, welches Benutzerkonto jede Aufgabe ausführt.

Zusätzliche System-Cron-Dateien auflisten

ls /etc/cron.d/

Jede Datei in diesem Verzeichnis kann zusätzliche geplante Aufgaben für bestimmte Systemdienste oder auf Ihrem Server installierte Anwendungen definieren.

4. In /var/spool/cron gespeicherte Cron-Jobs anzeigen

Benutzerspezifische Crontab-Dateien werden auf der Festplatte in /var/spool/cron/crontabs/ gespeichert. Sie können alle Benutzer mit aktiven Crontabs mit folgendem Befehl auflisten:

ls /var/spool/cron/crontabs/

Um den Inhalt einer bestimmten Crontab-Datei eines Benutzers direkt zu lesen:

cat /var/spool/cron/crontabs/username

> Hinweis: Dies erzeugt die gleiche Ausgabe wie sudo crontab -l -u username, aber der direkte Zugriff auf diese Dateien erfordert normalerweise Root-Rechte.

5. Alle Cron-Jobs für alle Benutzer auf einmal auflisten

Als Systemadministrator möchten Sie möglicherweise alle Cron-Jobs aller Benutzer gleichzeitig überprüfen. Die folgende One-Liner erreicht dies:

for user in $(cut -f1 -d: /etc/passwd); do echo "--- Cron jobs for: $user ---"; crontab -l -u $user 2>/dev/null; done

Dieses Skript durchläuft jeden Benutzerkonto, das in /etc/passwd definiert ist, und gibt ihre geplanten Cron-Jobs aus, wobei Fehlermeldungen für Benutzer ohne Crontab unterdrückt werden.

Cron-Jobs bearbeiten

Um Cron-Jobs für den aktuell angemeldeten Benutzer hinzuzufügen oder zu ändern, verwenden Sie:

crontab -e

Dies öffnet die Crontab-Datei in Ihrem Standard-Texteditor des Systems (normalerweise nano oder vi). Nach dem Speichern und Beenden werden die Änderungen sofort wirksam — ein Neustart des Dienstes ist nicht erforderlich.

Beispiel: Ein Skript jeden Tag um 3:00 Uhr ausführen

0 3 * * * /home/user/scripts/daily-report.sh

Beispiel: Alle Cron-Jobs des aktuellen Benutzers löschen

crontab -r

> Warnung: Das Flag -r entfernt alle Cron-Jobs des aktuellen Benutzers ohne Bestätigung. Verwenden Sie es mit Vorsicht.

Schnellreferenz: Wesentliche Crontab-Befehle

AufgabeBefehl
Cron-Jobs des aktuellen Benutzers auflistencrontab -l
Cron-Jobs eines anderen Benutzers auflistensudo crontab -l -u username
Crontab des aktuellen Benutzers bearbeitencrontab -e
Alle Cron-Jobs des aktuellen Benutzers entfernencrontab -r
System-Crontab anzeigencat /etc/crontab
Cron-Dateien in /etc/cron.d/ auflistenls /etc/cron.d/
Alle Crontab-Dateien der Benutzer auflistenls /var/spool/cron/crontabs/
Crontab-Datei eines bestimmten Benutzers anzeigencat /var/spool/cron/crontabs/username

Behebung häufiger Cron-Job-Probleme

Auch erfahrene Administratoren stoßen auf cron-bezogene Probleme. Hier sind die häufigsten Probleme und deren Lösungen:

Cron-Job wird nicht ausgeführt:

  • Überprüfen Sie die Syntax Ihres Crontab-Eintrags mit einem Online-Cron-Expression-Validator.
  • Stellen Sie sicher, dass das Skript Ausführungsberechtigungen hat: chmod +x /path/to/script.sh
  • Überprüfen Sie, dass der vollständige absolute Pfad zum Befehl oder Skript angegeben ist.

Probleme mit Umgebungsvariablen:

  • Cron wird mit einer minimalen Umgebung ausgeführt. Verwenden Sie immer absolute Pfade für Befehle und Binärdateien.
  • Definieren Sie erforderliche Variablen (wie PATH) am Anfang Ihrer Crontab-Datei.

Überprüfung von Cron-Protokollen:

  • Auf Debian/Ubuntu: grep CRON /var/log/syslog
  • Auf RHEL/CentOS: grep CRON /var/log/cron

Verwaltung von Cron Jobs in verwalteten Hosting-Umgebungen

Wenn Sie Ihre Anwendungen auf verwaltetes Hosting ausführen, kann der Zugriff auf die Cron-Job-Verwaltung je nach Kontrollpanel variieren. Benutzer auf VPS mit cPanel können Cron Jobs über den intuitiven Bereich Cron Jobs im cPanel Dashboard verwalten, der eine grafische Benutzeroberfläche zum Planen von Aufgaben bietet, ohne dass Sie Crontab-Dateien manuell bearbeiten müssen.

Für diejenigen, die vollständige Befehlszeilenkontrolle bevorzugen, bietet ein VPS Hosting Plan vollständigen Root-Zugriff zur Verwaltung von Cron Jobs, Systemdiensten und Automatisierungsskripten genau wie in diesem Leitfaden beschrieben. Wenn Ihre Infrastruktur noch größere Ressourcen und Isolation erfordert, bieten Dedicated Server die ultimative Umgebung für die Ausführung komplexer, hochfrequenter geplanter Workloads.

Fazit

Das Anzeigen und Auflisten von Cron-Jobs mit crontab ist eine grundlegende Fähigkeit für jeden, der mit Unix-ähnlichen Systemen arbeitet. Von der Überprüfung Ihrer eigenen geplanten Aufgaben mit crontab -l bis zur Überprüfung systemweiter Jobs in /etc/crontab und /etc/cron.d/ geben Ihnen die in diesem Leitfaden behandelten Befehle vollständige Transparenz darüber, was auf Ihrem Server läuft und wann.

Durch die Beherrschung von Cron können Sie wiederholte Aufgaben automatisieren, Sicherungen planen, die Protokollrotation verwalten und eine konsistente Skriptausführung in Ihrer gesamten Infrastruktur aufrechterhalten – alles ohne manuelle Eingriffe. Egal ob Sie ein erfahrener Sysadmin sind oder gerade erst mit der Serververwaltung beginnen, Cron bleibt eines der leistungsstärksten und zuverlässigsten Automatisierungstools auf Linux- und Unix-Systemen.