Zurück zum Blog
Mai 23, 2026Anleitungen

Cron-Jobs auf einem Linux-Server einrichten

Cron-Syntax, crontab bearbeiten, Beispiele und Logging für automatisierte Aufgaben auf dem VPS.

Cron-Jobs auf einem Linux-Server einrichten

Cron ist der Standard-Scheduler unter Linux für Skripte und Befehle zu festen Zeiten — Backups, Cache leeren, Zertifikatsprüfung und mehr.

Cron-Syntax

Jede Zeile hat fünf Zeitfelder und den Befehl:

bash
# ┌──────── Minute (0-59)
# │ ┌────── Stunde (0-23)
# │ │ ┌──── Tag im Monat (1-31)
# │ │ │ ┌── Monat (1-12)
# │ │ │ │ ┌─ Wochentag (0-7, 0 und 7 = Sonntag)
# │ │ │ │ │
# * * * * * Befehl

# Täglich um 3:00:
0 3 * * * /usr/local/bin/backup.sh

# Alle 15 Minuten:
*/15 * * * * /usr/local/bin/check.sh

Crontab bearbeiten

crontab -e für den aktuellen Benutzer. Systemaufgaben mit sudo:

bash
# Benutzer-crontab
crontab -e

# Root-crontab
sudo crontab -e

# Aufgaben anzeigen
crontab -l
sudo crontab -l

Häufige Beispiele

  • 0 2 * * * — tägliches Backup um 2:00
  • 0 */6 * * * — alle 6 Stunden
  • 0 0 * * 0 — jeden Sonntag um Mitternacht
  • */5 * * * * — alle 5 Minuten (vorsichtig nutzen)
  • @reboot /pfad/skript.sh — nach Neustart
  • @daily /usr/bin/certbot renew --quiet — tägliche SSL-Prüfung

Logging und Fehlersuche

Ausgabe in eine Logdatei umleiten:

bash
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup-cron.log 2>&1

# Cron im Systemlog:
grep CRON /var/log/syslog   # Ubuntu
grep CRON /var/log/cron      # CentOS

Tipps

  • Absolute Pfade in Cron-Befehlen verwenden
  • Skripte manuell testen, bevor sie in crontab landen
  • MAILTO=email in crontab für Fehlermails (wenn Mail konfiguriert)
  • Für komplexe Abhängigkeiten systemd-Timer erwägen
  • Keine schweren Jobs jede Minute — VPS kann überlastet werden