cron und crontab
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/.
1Die 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.
2Systemdateien
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.
3Hä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.
4systemd-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
- Öffnen Sie Ihre crontab:
crontab -e - Fügen Sie eine Zeile hinzu, zum Beispiel: 30 2 * * *
/usr/local/bin/backup.sh>>/var/log/backup.log2>&1 - Speichern und beenden; cron übernimmt die Änderung automatisch.
- Listen Sie die Aufgaben auf:
crontab -l
Vorsicht
crontab -rlöscht die gesamte crontab ohne Rückfrage.- Testen Sie den Befehl manuell mit demselben Benutzer, bevor Sie ihn planen.
Verwandte Artikel
- systemd-Units und systemctlWas eine systemd-Unit ist, die gängigen Unit-Typen und wie man Dienste mit systemctl startet, stoppt, aktiviert und überprüft.
- logrotateWas logrotate macht, wie die Konfiguration in /etc/logrotate.conf und /etc/logrotate.d funktioniert und wie man eine Regel sicher testet.
- journalctl und das systemd-JournalErfahren Sie, wie Sie Protokolle mit journalctl lesen, den Speicherplatzbedarf des Journals prüfen und es mit --vacuum-Optionen sicher verkleinern.
Quellen
- crontab(5) man7.org
- crontab(5) (Debian) manpages.debian.org
- systemd.timer(5) man7.org
Zuletzt geprüft: