Crmgo Blog

Cron

Cron

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. Wenn für run-parts weder die Option –lsbsysinit noch die Option –regex angegeben ist, müssen die Dateinamen ausschließlich aus Groß- und Kleinbuchstaben bestehen…

Cron

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.
Wenn für run-parts weder die Option –lsbsysinit noch die Option –regex angegeben ist, müssen die Dateinamen ausschließlich aus Buchstaben (Groß- und Kleinschreibung), Ziffern, Unterstrichen und Bindestrichen bestehen. Ein Punkt wird von run-parts NICHT akzeptiert.

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
Wenn alle Sternchen angegeben sind, bedeutet dies, dass die Aufgabe jede Minute ausgeführt wird.

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

Hinweis: Dieser Beitrag kann KI-unterstützt erstellt und anschließend redaktionell geprüft worden sein. Verantwortlich: Dmytro Lomaka, Kaltenkirchen.