Cron Ausdrücke Syntax
Cron-Ausdrücke: Zeitplanung meistern
Cron-Ausdrücke definieren, wann automatische Aufgaben laufen. Von minütlich bis jährlich – hier lernen Sie die Syntax.
Das Cron-Format
┌──────────── Minute (0-59) │ ┌────────── Stunde (0-23) │ │ ┌──────── Tag im Monat (1-31) │ │ │ ┌────── Monat (1-12) │ │ │ │ ┌──── Wochentag (0-7, 0 und 7 = Sonntag) │ │ │ │ │ * * * * *
Spezielle Zeichen
| Zeichen | Bedeutung | Beispiel |
|---|---|---|
* |
Jeder Wert | * * * * * = jede Minute |
, |
Mehrere Werte | 1,15,30 = um 1, 15 und 30 |
- |
Bereich | 1-5 = 1 bis 5 |
/ |
Schritte | */15 = alle 15 |
Praktische Beispiele
| Ausdruck | Beschreibung |
|---|---|
* * * * * |
Jede Minute |
*/5 * * * * |
Alle 5 Minuten |
0 * * * * |
Jede Stunde (zur vollen Stunde) |
0 */2 * * * |
Alle 2 Stunden |
0 0 * * * |
Täglich um Mitternacht |
0 6 * * * |
Täglich um 6:00 Uhr |
30 4 * * * |
Täglich um 4:30 Uhr |
0 0 * * 0 |
Jeden Sonntag um Mitternacht |
0 0 * * 1-5 |
Montag bis Freitag um Mitternacht |
0 0 1 * * |
Am 1. jeden Monats |
0 0 1 1 * |
Am 1. Januar (jährlich) |
0 9-17 * * 1-5 |
Stündlich 9-17 Uhr, Mo-Fr |
Typische Anwendungsfälle
# Backup täglich um 3:00 Uhr 0 3 * * * /scripts/backup.sh # Log-Rotation wöchentlich 0 0 * * 0 /scripts/rotate-logs.sh # Health Check alle 5 Minuten */5 * * * * /scripts/health-check.sh # Report Montags um 8:00 Uhr 0 8 * * 1 /scripts/weekly-report.sh # Datenbank-Cleanup jeden 1. des Monats 0 2 1 * * /scripts/cleanup-db.sh # Cache leeren alle 15 Minuten (außer nachts) */15 6-23 * * * /scripts/clear-cache.sh
Crontab bearbeiten
# Eigene Crontab bearbeiten crontab -e # Crontab anzeigen crontab -l # Crontab löschen crontab -r # Crontab eines anderen Users (als root) crontab -u www-data -e
Crontab-Datei Format
# Umgebungsvariablen SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin MAILTO=admin@example.com # Jobs 0 3 * * * /scripts/backup.sh >> /var/log/backup.log 2>&1 */5 * * * * /scripts/check.sh
Spezielle Strings (wenn unterstützt)
| String | Entspricht |
|---|---|
@reboot |
Bei Systemstart |
@yearly |
0 0 1 1 * |
@monthly |
0 0 1 * * |
@weekly |
0 0 * * 0 |
@daily |
0 0 * * * |
@hourly |
0 * * * * |
Output und Logging
# Output in Datei schreiben 0 3 * * * /scripts/backup.sh >> /var/log/backup.log 2>&1 # Output verwerfen 0 3 * * * /scripts/backup.sh > /dev/null 2>&1 # Nur Fehler loggen 0 3 * * * /scripts/backup.sh > /dev/null 2>> /var/log/errors.log # E-Mail bei Output MAILTO=admin@example.com 0 3 * * * /scripts/backup.sh
Debugging
# Cron-Logs prüfen grep CRON /var/log/syslog tail -f /var/log/syslog | grep CRON # Skript manuell testen /scripts/backup.sh # Mit gleicher Umgebung wie Cron testen env -i /bin/bash -c '/scripts/backup.sh'
Häufige Fehler
❌ Häufige Cron-Fehler:
- PATH nicht gesetzt (Befehle nicht gefunden)
- Skript nicht ausführbar (
chmod +xvergessen) - Prozent-Zeichen (%) nicht escaped
- Umgebungsvariablen fehlen
- Keine Newline am Dateiende
# Prozent-Zeichen escapen! # ❌ Falsch: 0 0 * * * date +%Y-%m-%d # ✅ Richtig: 0 0 * * * date +\%Y-\%m-\%d
Cron Online-Tools
- crontab.guru: Cron-Ausdruck erklären
- cronitor.io: Cron-Monitoring
- crontab-generator.org: Generator
💡 Tipp:
Nutzen Sie crontab.guru zum Testen von Ausdrücken, bevor Sie sie einsetzen.