Rain Wiki · Linux

cron und crontab

Wie cron geplante Aufgaben ausführt, die fünf crontab-Zeitfelder, wo sich System-cron-Dateien befinden und wie systemd-Timer im Vergleich abschneiden.

Linux · Rain Wiki

cron ist der klassische Unix-Daemon, der Befehle nach einem Zeitplan ausführt. Jeder Benutzer hat eine crontab, die mit crontab -e bearbeitet wird und in der jede Zeile fünf Zeitfelder (Minute, Stunde, Tag des Monats, Monat, Wochentag) gefolgt vom Befehl enthält. Systemaufgaben befinden sich in /etc/crontab und /etc/cron.d/.

Die Zeitfelder

'30 2 * * *' bedeutet täglich um 02:30 Uhr; '*/10 * * * *' alle zehn Minuten; '0 9 * * 1' montags um 09:00 Uhr. Die Wochentage 0 und 7 stehen für Sonntag.

Systemdateien

Dateien in /etc/cron.d/ und /etc/crontab haben ein zusätzliches Feld, den Benutzernamen, zwischen der Zeit und dem Befehl. Verzeichnisse wie /etc/cron.daily enthalten Skripte, die einmal täglich ausgeführt werden.

Häufige Fallstricke

cron läuft in einer minimalen Umgebung: Verwenden Sie absolute Pfade oder setzen Sie PATH in der crontab. Die Ausgabe wird an den Eigentümer gesendet oder geht verloren; leiten Sie sie in eine Protokolldatei um. Das Zeichen % hat in crontab-Zeilen eine besondere Bedeutung und muss als \% maskiert werden.

systemd-Timer

Auf Distributionen mit systemd sind .timer-Einheiten eine Alternative mit Protokollierung im Journal, zufälligen Verzögerungen und dem Nachholen verpasster Ausführungen (Persistent=true).

So fügen Sie eine tägliche Aufgabe hinzu

  1. Öffnen Sie Ihre crontab: crontab -e
  2. Fügen Sie eine Zeile hinzu, zum Beispiel: 30 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
  3. Speichern und beenden; cron übernimmt die Änderung automatisch.
  4. Listen Sie die Aufgaben auf: crontab -l

Vorsicht

  • 'crontab -r' löscht die gesamte crontab ohne Rückfrage.
  • Testen Sie den Befehl manuell mit demselben Benutzer, bevor Sie ihn planen.

Quellen

Zuletzt aktualisiert: 2026-10-08

Verwandte Artikel