12.3. cron(8) konfigurieren

Beigetragen von Tom Rhodes.

Ein sehr nützliches Werkzeug von FreeBSD ist cron. Dieses Programm läuft im Hintergrund und überprüft fortlaufend /etc/crontab und /var/cron/tabs. In diesen Dateien wird festgelegt, welche Programme zu welchem Zeitpunkt von cron ausgeführt werden sollen.

Das Werkzeug verwendet zwei verschiedene Konfigurationsdateien: die System-crontab und die Benutzer-crontabs. Der einzige Unterschied zwischen beiden Formaten ist das sechste Feld. In der System-crontab gibt das sechste Feld den Benutzer an, mit dem cron das Kommando ausführen wird. In einer Benutzer-crontab werden alle Kommandos unter dem Benutzer ausgeführt, welcher die crontab erstellt hat. Hier ist das sechste Feld das letzte Feld. Dies ist ein wichtiges Sicherheitsmerkmal. Das letzte Feld bezeichnet immer das Kommando, das ausgeführt werden soll.

Anmerkung:

Benutzer können mit Benutzer-crontabs ohne root-Rechte Befehle terminieren. Die Kommandos in Benutzer-crontabs laufen unter dem Benutzer, der die crontab erstellt hat.

Der Benutzer root kann, wie jeder andere Benutzer, eine Benutzer-crontab besitzen. Die Benutzer-crontab von root ist nicht mit /etc/crontab, der System-crontab, zu verwechseln. Da die System-crontab die angegebenen Kommandos effektiv als root-Benutzer aufruft, besteht normalerweise keine Notwendigkeit eine eigene Benutzer-crontab für root zu erstellen.

Hier ist ein Beispieleintrag aus der System-crontab, /etc/crontab:

# /etc/crontab - root's crontab for FreeBSD
#
#$FreeBSD: head/de_DE.ISO8859-1/books/handbook/config/chapter.xml 48993 2016-06-23 22:29:42Z bhd $
# 1
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin 2
#
#
#minute	hour	mday	month	wday	who	command 3
#
*/5	*	*	*	*	root	/usr/libexec/atrun 4

1

Das Zeichen # am Zeilenanfang leitet, wie in den meisten Konfigurationsdateien, einen Kommentar ein. Benutzen Sie Kommentare, um die Funktion eines Eintrags zu erläutern. Kommentare müssen in einer extra Zeile stehen. Sie können nicht in derselben Zeile wie ein Kommando stehen, da sie sonst Teil des Kommandos wären. Leerzeilen in dieser Datei werden ignoriert.

2

Umgebungsvariablen werden mit dem Gleichheits-Zeichen (=) festgelegt. Im Beispiel werden die Variablen SHELL, PATH und HOME definiert. Wenn die Variable SHELL nicht definiert wird, benutzt cron die Bourne Shell. Wird die Variable PATH nicht gesetzt, müssen alle Pfadangaben absolut sein, da es keinen Vorgabewert für PATH gibt.

3

In dieser Zeile werden sieben Felder beschrieben: minute, hour, mday, month, wday, who und command. Die ersten Felder legen den Zeitpunkt fest, an dem ein Kommando laufen soll. Das Feld minute legt die Minute fest, das Feld hour die Stunde, das Feld mday den Tag des Monats. Im Feld month wird der Monat und im Feld wday der Wochentag festgelegt. Alle Felder müssen numerische Werte enthalten und die Zeitangaben sind im 24-Stunden-Format. Das Zeichen * repräsentiert dabei alle möglichen Werte für dieses Feld. Das Feld who gibt es nur in der Datei /etc/crontab und gibt den Account an, unter dem das Kommando laufen soll. Im letzten Feld wird schließlich das auszuführende Kommando angegeben.

4

Diese Zeile definiert die Zeitpunkte an denen atrun laufen soll. Dieses Beispiel verwendet die Zeichenfolge */5 gefolgt von mehreren *-Zeichen. Das Zeichen * ist ein Platzhalter und steht für jede mögliche Zeit. Diese Zeile führt /usr/libexec/atrun unter dem root-Account alle fünf Minuten aus.

Bei den Kommandos können beliebige Optionen angegeben werden. Wenn das Kommando zu lang ist und auf der nächsten Zeile fortgesetzt werden soll, muss am Ende der Zeile das Fortsetzungszeichen (\) angegeben werden.

Bis auf das sechste Feld, das den Account angibt, sieht jede crontab(5) so wie das Beispiel aus. Das sechste Feld existiert nur in der System-crontab. In den restlichen crontab(5)-Dateien fehlt dieses Feld.

12.3.1. crontab installieren

Wichtig:

Die nachstehende Prozedur gilt nur für Benutzer-crontabs. Die System-crontab kann mit einem Editor bearbeitet werden. cron bemerkt, dass sich die Datei geändert hat und wird die neue Version benutzen. Lesen Sie bitte auch die FAQ zur Meldung root: not found.

Eine Benutzer-crontab, beispielsweise die Datei crontab-datei, können Sie mit jedem Editor erstellen. Die Benutzer-crontab installieren Sie mit dem nachstehenden Befehl:

# crontab crontab-datei

Das Argument zum Befehl crontab(5) ist die vorher erstellte crontab-datei.

Der Befehl crontab -l zeigt die installierte crontab-Datei an.

Benutzer, die eine eigene crontab-Datei ohne Vorlage erstellen wollen, können den Befehl crontab -e verwenden. Dieser Befehl ruft einen Editor auf und installiert beim Verlassen des Editors die crontab-Datei.

Wollen Sie die installierte Benutzer-crontab entfernen, rufen Sie den crontab -r.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.

Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.