Zeitgesteuerte Jobs visuell erklärt
Eine Zeile wie 30 4 * * 1 backup.sh reicht, damit ein Server jeden Montag um 04:30 ein Backup macht. Hier siehst du, wie cron diese Zeile liest, wann sie wirklich feuert (auch bei der Zeitumstellung) und was der Daemon dann tut.
│ │ │ │ │ │ │ │ │ └── Wochentag 0–7 (0 und 7 = Sonntag) · sun–sat │ │ │ └──── Monat 1–12 · jan–dec │ │ └────── Tag 1–31 │ └──────── Stunde 0–23 └─────────── Minute 0–59
Fünf Felder, Listen, Bereiche, Schritte, Namen, @-Strings – und die ODER-Regel für Tag und Wochentag, belegt aus man 5 crontab.
Ausdruck tippen oder zusammenklicken → deutscher Klartext, nächste Ausführungen in jeder Zeitzone, Monatskalender und Heatmap.
crond Minute für Minute: Feldvergleich, fork, minimale Umgebung, /bin/sh -c, stdout/stderr, Mail und Exit-Code.
PATH, das %-Zeichen, Sommerzeit (02:30 fehlt oder kommt doppelt), überlappende Läufe mit flock, Logging, /etc/cron.d, anacron.
systemd-Timer mit OnCalendar-Umrechnung, Kubernetes CronJob, Docker, GitHub Actions, node-cron, APScheduler, BullMQ.
🔁 Die Schleife von crond
┌──────────────────────────────────────────┐
│ sleep() bis zur nächsten vollen Minute │◄─────┐
└──────────────────────┬───────────────────┘ │
▼ │
┌──────────────────────────────────────────┐ │
│ crontabs geändert (mtime)? → neu laden │ │
└──────────────────────┬───────────────────┘ │
▼ │
┌──────────────────────────────────────────┐ │
│ für jede Zeile: Minute ∧ Stunde ∧ Monat │ │
│ ∧ (Tag ∘ Wochentag) passt? │ │
└───────────┬──────────────────┬───────────┘ │
ja │ │ nein │
▼ └──────────────────┤
┌──────────────────────────┐ │
│ fork → setuid → /bin/sh -c│── Ausgabe → Mail ───┘
└──────────────────────────┘crontab -e (Debian speichert sie unter /var/spool/cron/crontabs/). Systemweite Jobs stehen in /etc/crontab und /etc/cron.d/* – dort mit zusätzlichem Benutzerfeld./usr/bin:/bin. 2) date +%F in der crontab → das % beendet den Befehl. 3) Ein Job um 02:30 → an einem Tag im März fehlt die Uhrzeit, im Oktober gibt es sie zweimal.systemd-analyze calendar geprüft.