Was ist ein Cron-Job und wie richtet man ihn ein? Linux-Scheduling
Mit Cron auf Linux automatische Backups, Log-Bereinigung und Skript-Planung. Crontab-Syntax, Beispiele und Stolperfallen.
Sie wollen jede Nacht automatische Backups, wöchentliche Log-Bereinigung oder einen Health-Check alle 5 Minuten? Cron ist das Linux-Standardwerkzeug dafür. Diese Anleitung deckt Crontab-Syntax, praktische Beispiele und Fallstricke ab.
Was ist Cron?
Cron ist ein Linux-Daemon, der Befehle zu geplanten Zeiten ausführt. Er liest crontab-Dateien minütlich und triggert fällige Befehle.
Crontab-Syntax
Eine Cron-Zeile: 5 Zeitfelder + Befehl:
* * * * * befehl
│ │ │ │ │
│ │ │ │ └── Wochentag (0-7, 0 und 7 = Sonntag)
│ │ │ └──── Monat (1-12)
│ │ └────── Tag des Monats (1-31)
│ └──────── Stunde (0-23)
└────────── Minute (0-59)
Praktische Beispiele
| Ausdruck | Bedeutung |
|---|---|
* * * * * | Jede Minute |
*/5 * * * * | Alle 5 Minuten |
0 * * * * | Zur vollen Stunde |
0 3 * * * | Täglich um 03:00 |
0 3 * * 1 | Montags um 03:00 |
0 3 1 * * | 1. jedes Monats 03:00 |
30 2 * * 1-5 | Werktags 02:30 |
@reboot | Beim Server-Start |
@daily | Täglich 00:00 |
@weekly | Sonntags 00:00 |
Komplexe Ausdrücke testen: crontab.guru
Crontab bearbeiten
crontab -e # Aktueller Benutzer
sudo crontab -e # root
crontab -l # Auflisten
crontab -r # ALLES löschen (Vorsicht!)
Beim ersten Mal wird ein Editor gewählt — nano (einfach) oder vim.
Praktische Beispiele
Nächtliches Backup
0 3 * * * /usr/local/bin/backup-wp.sh >> /var/log/backup.log 2>&1
Stündliche Log-Bereinigung
0 * * * * find /var/log/myapp -name "*.log" -mtime +30 -delete
Health-Check alle 5 Minuten
*/5 * * * * curl -s -o /dev/null -w "%{http_code}" https://ihre-site.com >> /var/log/health.log
Datenbank-Backup
30 2 * * * mysqldump -u root -p'PASSWORT' db | gzip > /backup/db-$(date +\%Y\%m\%d).sql.gz
⚠️ % ist in crontab speziell — \% zum Escapen.
Zertifikatserneuerung
0 4 * * * certbot renew --quiet && systemctl reload nginx
SSL-Details: Let’s Encrypt-Beitrag.
Cron-Ausführung verifizieren
sudo systemctl status cron
sudo tail -f /var/log/syslog | grep CRON
sudo tail -f /var/log/cron
Zum Testen: für 1-2 Minuten in Zukunft planen, Log beobachten.
Häufige Stolperfallen
- Cron lief nicht: Befehle mit absolutem Pfad schreiben (
/usr/bin/php, nicht nurphp) - Keine Env-Vars: Cron mit minimalem Env →
PATH=am Skriptanfang setzen %vergessen:date +%Y%m%dbricht —\%- Keine Ausgabe sichtbar: ohne Mail-Konfiguration STDOUT verloren →
>> log 2>&1 - PHP/Node-Skript-Timeouts: läuft als CLI, kein Web-Timeout — lange Skripte aber in Hintergrund
- Zeitzone: UTC-Server verschiebt Zeiten →
sudo timedatectl set-timezone Europe/Berlin
systemd-Timer-Alternative (modern)
systemd-Timer sind moderner als Cron, mit besserer Log-Integration:
/etc/systemd/system/backup.service:
[Unit]
Description=Daily backup
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup-wp.sh
/etc/systemd/system/backup.timer:
[Unit]
Description=Daily backup timer
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl enable --now backup.timer
sudo systemctl list-timers
Fazit
Cron ist das Fundament der Server-Automation. In 5 Minuten gelernt, täglich genutzt. Backups, Bereinigung, Monitoring — alles mit Cron.
Verwandt: Server-Backups · Linux-Disk-Erweiterung
Ähnliche Beiträge
Das könnte Sie auch interessieren.
Die 3-2-1-Backup-Regel: So verlieren Sie Server-Daten nie wieder
Die 3-2-1-Backup-Regel ist der Goldstandard für Server-Backup-Strategien. Wir erläutern Regel, Automation und KavesNETs Backup-Infrastruktur.
Weiterlesen
Site von Plesk zu Plesk migrieren: Migrator-Anleitung
Sites, Mail, DB und DNS in einem Schritt mit Plesk Migrator umziehen. Setup, Testmigration und Cutover.
Weiterlesen
FileZilla: Dateimigration zwischen zwei VDS
Site vom alten zum neuen VDS migrieren: FileZilla über FTP/SFTP, Geschwindigkeitstipps, Berechtigungen und Fehlerbehandlung.
Weiterlesen