Was ist Crontab?
Cron ist ein Dienst auf Unix/Linux-Systemen zum Planen wiederkehrender Aufgaben. Crontab (Cron Table) ist die Datei, die diese Zeitpläne enthält.
Cron-Syntax erklärt
┌───────────── Minute (0-59) │ ┌───────────── Stunde (0-23) │ │ ┌───────────── Tag des Monats (1-31) │ │ │ ┌───────────── Monat (1-12) │ │ │ │ ┌───────────── Wochentag (0-6, 0=Sonntag) │ │ │ │ │ * * * * * Befehl
Spezielle Zeichen
*– Jeder Wert,– Liste (z.B. 1,3,5)-– Bereich (z.B. 1-5)/– Schritt (z.B. */5 = alle 5)
Häufige Cron-Ausdrücke
| Ausdruck | Bedeutung |
|---|---|
* * * * * | Jede Minute |
0 * * * * | Jede Stunde |
0 0 * * * | Täglich um Mitternacht |
0 9 * * 1-5 | Werktags 9 Uhr |
0 0 1 * * | Monatlich am 1. |
0 0 * * 0 | Jeden Sonntag |
*/5 * * * * | Alle 5 Minuten |
0 */2 * * * | Alle 2 Stunden |
0 9,18 * * * | Um 9 und 18 Uhr |
Vordefinierte Shortcuts
| Shortcut | Entspricht |
|---|---|
@yearly | 0 0 1 1 * |
@monthly | 0 0 1 * * |
@weekly | 0 0 * * 0 |
@daily | 0 0 * * * |
@hourly | 0 * * * * |
@reboot | Bei Systemstart |
Crontab-Befehle
# Crontab bearbeiten crontab -e # Crontab anzeigen crontab -l # Crontab löschen crontab -r # Crontab eines anderen Users crontab -u username -l
Tipps für Cron-Jobs
- Volle Pfade: Immer absolute Pfade zu Scripts verwenden
- Output: Redirect in Logdatei:
>> /var/log/myjob.log 2>&1 - Zeitzone: Cron verwendet die Systemzeitzone
- Email: Standardmäßig werden Outputs gemailt (MAILTO=)
Häufig gestellte Fragen
Warum läuft mein Cron-Job nicht?
Häufige Ursachen: Falscher Pfad (immer absolut!), fehlende Umgebungsvariablen, keine Ausführungsrechte, oder der Cron-Dienst läuft nicht (systemctl status cron).
Wie debugge ich Cron-Jobs?
Output in Logdatei umleiten, Timestamp am Anfang loggen, und in /var/log/syslog nach Cron-Einträgen suchen.
Kann ich Sekunden-Intervalle nutzen?
Standard-Cron unterstützt nur Minuten als kleinstes Intervall. Für Sekunden-Genauigkeit: systemd-Timer oder ein Script mit sleep-Loop.