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-crontab
s. 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.
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 48865 2016-05-27 19:44:57Z bhd $ ## SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
# # #minute hour mday month wday who command
# */5 * * * * root /usr/libexec/atrun
![]()
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.Umgebungsvariablen werden mit dem Gleichheits-Zeichen (
=
) festgelegt. Im Beispiel werden die VariablenSHELL
,PATH
undHOME
definiert. Wenn die VariableSHELL
nicht definiert wird, benutzt cron die Bourne Shell. Wird die VariablePATH
nicht gesetzt, müssen alle Pfadangaben absolut sein, da es keinen Vorgabewert fürPATH
gibt.In dieser Zeile werden sieben Felder beschrieben:
minute
,hour
,mday
,month
,wday
,who
undcommand
. Die ersten Felder legen den Zeitpunkt fest, an dem ein Kommando laufen soll. Das Feldminute
legt die Minute fest, das Feldhour
die Stunde, das Feldmday
den Tag des Monats. Im Feldmonth
wird der Monat und im Feldwday
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 Feldwho
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.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 demroot
-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.
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>.