Skip to main content
CheckTown
Generatoren

Crontab-Generator: Cron-Ausdrücke für geplante Aufgaben erstellen

Veröffentlicht 6 Min. Lesezeit
In diesem Artikel

Was ist Crontab?

Crontab (Cron-Tabelle) ist ein zeitbasierter Auftragsplaner, der in Unix-artigen Betriebssystemen enthalten ist. Damit lassen sich Befehle oder Skripte so einrichten, dass sie automatisch in festgelegten Intervallen ausgeführt werden – von jeder Minute bis einmal pro Jahr. Der Cron-Daemon liest die Crontab-Dateien und führt die geplanten Befehle zu ihren vorgesehenen Zeitpunkten aus.

Jeder Benutzer eines Systems kann eine eigene Crontab-Datei besitzen, und zusätzlich gibt es eine systemweite Crontab. Die Crontab-Datei enthält eine Liste von Cron-Jobs, wobei jede Zeile über einen Zeitausdruck aus fünf Feldern gefolgt vom auszuführenden Befehl einen Zeitplan definiert.

Syntax von Cron-Ausdrücken

Ein Cron-Ausdruck besteht aus fünf durch Leerzeichen getrennten Feldern, die jeweils eine Zeiteinheit darstellen. Sonderzeichen ermöglichen die Definition komplexer Zeitpläne:

  • Minute (0-59) – legt fest, in welcher Minute der Stunde der Job laufen soll
  • Stunde (0-23) – legt fest, in welcher Stunde des Tages im 24-Stunden-Format
  • Tag des Monats (1-31) – legt fest, an welchem Tag des Monats
  • Monat (1-12) – legt fest, in welchem Monat des Jahres
  • Wochentag (0-7, wobei sowohl 0 als auch 7 für Sonntag stehen) – legt fest, an welchem Wochentag

Zu den Sonderzeichen gehören: * (beliebiger Wert), / (Schrittwerte, z. B. */5 bedeutet alle 5 Einheiten), - (Bereiche, z. B. 1-5 bedeutet Montag bis Freitag) und Komma (Listen, z. B. 1,15 bedeutet den 1. und den 15.).

Häufige Cron-Muster

Hier sind die am häufigsten verwendeten Cron-Ausdrücke, die den Großteil aller Planungsanforderungen abdecken:

  • */5 * * * * – alle 5 Minuten, häufig für Health-Checks und Monitoring-Skripte verwendet
  • 0 * * * * – zu jeder vollen Stunde in Minute 0, geeignet für stündliche Datensynchronisationen oder die Erstellung von Berichten
  • 0 0 * * * – täglich um Mitternacht, der Standardplan für Backups, Log-Rotation und Aufräumaufgaben
  • 0 0 * * 1-5 – an jedem Wochentag um Mitternacht, nützlich für Verarbeitungen ausschließlich an Werktagen
  • 0 0 1 * * – am ersten Tag jedes Monats um Mitternacht, typischerweise für Monatsberichte und Abrechnungen genutzt
  • 0 9,17 * * 1-5 – um 9 Uhr und 17 Uhr an Werktagen, ideal für Benachrichtigungen zu Tagesbeginn und Tagesende

Kostenlos testen – keine Registrierung erforderlich

Cron-Ausdruck erstellen →

Typische Anwendungsfälle

Cron-Jobs automatisieren praktisch jede wiederkehrende Systemaufgabe. Hier sind die häufigsten Einsatzgebiete:

  • Log-Rotation und Aufräumen – alte Logdateien automatisch komprimieren, archivieren oder löschen, um Speicherplatzprobleme zu vermeiden
  • Datenbank-Backups – regelmäßige mysqldump-, pg_dump- oder mongodump-Befehle einplanen, um konsistente Backup-Snapshots zu erstellen
  • Berichterstellung – tägliche, wöchentliche oder monatliche Berichte aus Anwendungsdaten zusammenstellen und per E-Mail versenden
  • Cache leeren – abgelaufene Cache-Einträge in regelmäßigen Abständen entfernen, um Arbeitsspeicher freizugeben und die Aktualität der Daten sicherzustellen
  • Systemüberwachung – Health-Checks, Warnungen bei Speicherplatzmangel und Skripte zur Verfügbarkeitsprüfung in regelmäßigen Abständen ausführen

Tipps und Stolperfallen

Selbst erfahrene Entwickler stoßen auf typische Cron-Fallen. Behalten Sie diese Tipps im Hinterkopf, um Planungsprobleme zu vermeiden:

  • Zeitzonen beachten – Cron verwendet standardmäßig die Systemzeitzone. Setzen Sie TZ in Ihrer Crontab oder verwenden Sie UTC, um Verwirrung bei der Umstellung auf Sommer- und Winterzeit zu vermeiden
  • Überlappende Jobs – wenn ein Job länger dauert als das Intervall, können mehrere Instanzen gleichzeitig laufen. Verwenden Sie flock oder eine PID-Datei, um Überlappungen zu verhindern
  • PATH-Probleme – Cron läuft mit einer minimalen Umgebung. Verwenden Sie stets absolute Pfade für Befehle und setzen Sie PATH explizit am Anfang Ihrer Crontab
  • Ausgabe behandeln – Cron sendet stdout und stderr standardmäßig per E-Mail an den Benutzer. Leiten Sie die Ausgabe in eine Logdatei oder nach /dev/null um, damit der Mail-Spool nicht überläuft
  • Debugging – prüfen Sie /var/log/syslog oder /var/log/cron auf Ausführungsprotokolle. Testen Sie Ihren Befehl manuell, bevor Sie ihn zur Crontab hinzufügen

Häufig gestellte Fragen

Kann Cron Jobs mit sekundengenauer Präzision planen?

Standard-Cron unterstützt keine Sekunden – die kleinste Einheit ist eine Minute. Wenn Sie sekundengenaue Präzision benötigen, können Sie einen Umweg nutzen, etwa ein Skript, das jede Minute läuft und intern mit sleep-Befehlen schleift, oder auf einen dedizierten Scheduler wie systemd-Timer wechseln, die Intervalle unter einer Minute unterstützen.

Was ist der Unterschied zwischen Cron und systemd-Timern?

Cron ist der klassische Unix-Scheduler, der Crontab-Dateien mit Zeitausdrücken aus fünf Feldern verwendet. Systemd-Timer sind eine neuere Alternative unter Linux, die Funktionen wie Präzision unter einer Minute, eine Kalender-Event-Syntax, persistente Timer, die verpasste Läufe nachholen, und eine bessere Logging-Integration bieten. Cron ist einfacher und portabler; systemd-Timer sind mächtiger, aber Linux-spezifisch.

Wie teste ich einen Cron-Job, bevor ich ihn einplane?

Führen Sie zunächst den genauen Befehl manuell in Ihrem Terminal aus, um zu prüfen, ob er funktioniert. Simulieren Sie dann die Cron-Umgebung, indem Sie env -i /bin/sh -c 'your-command' ausführen, um mit einer minimalen, cron-ähnlichen Umgebung zu testen. Planen Sie ihn abschließend so ein, dass er jede Minute läuft (* * * * *), prüfen Sie im Cron-Log, ob er korrekt ausgeführt wird, und stellen Sie ihn dann auf den gewünschten Zeitplan um.

Verwandte Tools