cron
-
Konfigurationsdatei /etc/crontab. Verzeichnis für Konfigurationsdateien: /var/spool/cron/
-
Der crond-Dienst ruft run-parts auf, um Skripte aus den Verzeichnissen /etc/cron.* auszuführen.
Der cron-Dienst überprüft bei jeder Aktivierung das Änderungsdatum der Datei /etc/crontab sowie des Verzeichnisses /var/spool/cron/. Wenn diese geändert wurden, liest er alle Änderungen erneut ein und berücksichtigt sie bei nachfolgenden Aufrufen. Da das Dienstprogramm crontab nach der Bearbeitung der Aufgabenliste das Änderungsdatum des Ordners /var/spool/cron/ aktualisiert, ist ein Neustart des cron-Prozesses nicht erforderlich, nachdem Änderungen an der Benutzeraufgabenliste vorgenommen wurden – diese werden bei der nächsten Aktivierung berücksichtigt. Aus diesem Grund sollte zum Bearbeiten der Benutzeraufgabenlisten der Befehl crontab -e verwendet werden, anstatt die Dateien direkt zu bearbeiten. Für die Datei /etc/crontab wird das Änderungsdatum separat überprüft, sodass sie mit einem normalen Editor geändert werden kann (dafür sind Root-Rechte erforderlich).
Die von den ausgeführten Befehlen ausgegebene Information wird standardmäßig an die E-Mail-Adresse des Eigentümers der Aufgabenliste gesendet (normalerweise root, und seine E-Mail-Adresse ist in der Datei /etc/aliases angegeben). Um das Standardverhalten zu deaktivieren, wird die Variable MAILTO verwendet. Ein leerer Wert (MAILTO="") leitet die Nachrichten nach /dev/null weiter.
Das Format der crontab-Datei erlaubt es, anstelle der ersten fünf Positionen, die die Ausführungszeit der Aufgabe angeben, vordefinierte Werte zu verwenden:
-
@reboot (ausführen beim Start des Betriebssystems)
-
@yearly (jährlich um Mitternacht am 1. Januar ausführen)
-
@monthly (monatlich um Mitternacht am 1. des Monats ausführen)
-
@weekly (wöchentlich um Mitternacht jeden Montag ausführen)
-
@daily (täglich um 0:00 Uhr ausführen)
-
@hourly (zu Beginn jeder Stunde ausführen).
Die crontab-Datei für den Benutzer www-data anzeigen. Der Parameter -e ermöglicht die Bearbeitung der crontab-Datei des Benutzers www-data.
# crontab -u www-data -e # редактировать содержимое файла crontab # crontab -u www-data -l # отобразить содержимое файла crontab
# Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * command to be executed
Beispiele:
-
Ein Programm alle zwei Tage um 10:00 Uhr ausführen und einen Bericht an die in der Variable MAILTO angegebene E-Mail-Adresse senden
MAILTO=noc@example.net 0 10 */2 * * root /usr/local/repl/restart_repl.sh
-
Ein Skript am 1. und 15. jedes Monats um 2:05 Uhr sowie sonntags ausführen (Tag und Wochentag funktionieren im "ODER"-Modus)
5 2 1,15 * Sun /home/script
