Zum Inhalt springen
Verpassen Sie nicht unseren 20%-Rabatt für Neukunden! Rabattcode: KAVESNET20 Kopiert
Linux

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.

KavesNET-Team 15. Januar 2026 3 Min Lesedauer
Cron-Job geplante Aufgaben

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

AusdruckBedeutung
* * * * *Jede Minute
*/5 * * * *Alle 5 Minuten
0 * * * *Zur vollen Stunde
0 3 * * *Täglich um 03:00
0 3 * * 1Montags um 03:00
0 3 1 * *1. jedes Monats 03:00
30 2 * * 1-5Werktags 02:30
@rebootBeim Server-Start
@dailyTäglich 00:00
@weeklySonntags 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 nur php)
  • Keine Env-Vars: Cron mit minimalem Env → PATH= am Skriptanfang setzen
  • % vergessen: date +%Y%m%d bricht — \%
  • 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

Schlagwörter Linux Cron Automation Tutorial

Ähnliche Beiträge

Das könnte Sie auch interessieren.