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.
Jede Zeile in diesen Dateien definiert eine auszuführende
Aufgabe, die auch als Cronjob bezeichnet
wird.
Das Werkzeug verwendet zwei verschiedene
Konfigurationsdateien: die System-crontab, welche nicht
verändert werden sollte und die Benutzer-crontabs, die nach
Bedarf erstellt und geändert werden können. Das Format, dass
von diesen beiden Dateien verwendet wird, ist in crontab(5)
dokumentiert. Das Format der System-crontab in
/etc/crontab
enthält das Feld
who
, das in der Benutzer-crontab nicht
existiert. Dieses Feld gibt den Benutzer an, mit dem die
Aufgabe ausgeführt wird. Die Aufgaben in den Benutzer-crontabs
laufen unter dem Benutzer, der die crontab erstellt hat.
Benutzer-crontabs erlauben es den Benutzern, ihre eigenen
Aufgaben zu planen. Der Benutzer root
kann auch seine eigene
Benutzer-crontab haben, um Aufgaben zu planen, die nicht in der
System-crontab existieren.
Hier ist ein Beispieleintrag aus der
System-crontab, /etc/crontab
:
# /etc/crontab - root's crontab for FreeBSD # # $FreeBSD$ #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 | |
Umgebungsvariablen werden mit dem Gleichheits-Zeichen
( | |
In dieser Zeile werden sieben Felder der System-crontab
beschrieben: | |
Diese Zeile definiert die Werte für den Cronjob. Die
Zeichenfolge Bei den Kommandos können beliebig viele 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
( |
Rufen Sie crontab
im Editor-Modus auf,
um eine Benutzer-crontab zu erstellen:
%
crontab -e
Dies wird die crontab des Benutzers mit dem voreingestellten Editor öffnen. Wenn der Benutzer diesen Befehl zum ersten Mal ausführt, wird eine leere Datei geöffnet. Nachdem der Benutzer eine crontab erstellt hat, wird die Datei mit diesem Kommando zur Bearbeitung geöffnet.
Es empfiehlt sich, die folgenden Zeilen an den Anfang der crontab-Datei hinzuzufügen, um die Umgebungsvariablen zu setzen und die einzelnen Felder zu beschreiben:
SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin # Order of crontab fields # minute hour mday month wday command
Fügen Sie dann für jedes Kommando oder Skript eine Zeile
hinzu, mit der Angabe wann das Kommando ausgeführt werden
soll. In diesem Beispiel wird ein Bourne Shell Skript täglich
um 14:00 Uhr ausgeführt. Da der Pfad zum Skript nicht in
PATH
enthalten ist, wird der vollständige
Pfad zum Skript angegeben:
0 14 * * * /usr/home/dru/bin/mycustomscript.sh
Bevor Sie ein eigenes Skript verwenden, stellen Sie sicher, dass es ausführbar ist und dass es mit den wenigen Umgebungsvariablen von cron funktioniert. Um die Umgebung nachzubilden, die der obige cron-Eintrag bei der Ausführung verwenden würde, benutzen Sie dieses Kommando:
%
env -i SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/home/
dru
LOGNAME=dru
/usr/home/dru/bin/mycustomscript.sh
Die Umgebung von cron wird in crontab(5) beschrieben. Es ist wichtig, dass sichergestellt wird, dass die Skripte in der Umgebung von cron korrekt arbeiten, besonders wenn Befehle enthalten sind, welche Dateien mit Wildcards löschen.
Wenn Sie mit der Bearbeitung der crontab fertig sind, speichern Sie die Datei. Sie wird automatisch installiert und cron wird die darin enthalten Cronjobs zu den angegebenen Zeiten ausführen. Um die Cronjobs in einer crontab aufzulisten, verwenden Sie diesen Befehl:
%
crontab -l
0 14 * * * /usr/home/dru/bin/mycustomscript.sh
Um alle Cronjobs einer Benutzer-crontab zu löschen, verwenden Sie diesen Befehl:
%
crontab -r
remove crontab for dru?y
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>.