crontab(1) crontab(1)
NAME
crontab - Kommandos regelmäßig zu bestimmten Zeitpunkten ausführen
SYNTAX
crontab [--] [datei] Format 1
crontab -l [benutzerkennung] Format 2
crontab -r [benutzerkennung] Format 3
crontab -e [benutzerkennung] Format 4
BESCHREIBUNG
Mit crontab können Sie veranlassen, daß Kommandos, Shell-Prozeduren
oder ausführbare Programme regelmäßig zu bestimmten Zeitpunkten ausge-
führt werden.
Sie können mit crontab:
- Kommandoaufträge erteilen (Format 1)
- erteilte Aufträge ausgeben lassen (Format 2)
- erteilte Aufträge löschen (Format 3)
- erteilte Aufträge editieren (Format 4).
Vor dem Aufruf beachten
Wenn die Datei /etc/cron.d/cron.allow existiert, dann dürfen Sie das
Kommando crontab nur dann aufrufen, wenn Ihre Benutzerkennung in die-
ser Datei steht. Wenn die Datei /etc/cron.d/cron.allow nicht exi-
stiert, dann dürfen Sie das Kommando crontab nur dann aufrufen, wenn
Ihre Benutzerkennung nicht in der Datei /etc/cron.d/cron.deny steht.
Wenn weder /etc/cron.d/cron.allow noch /etc/cron.d/cron.deny existie-
ren, dann darf nur der Systemverwalter crontab aufrufen.
Existiert z. B. nur die leere deny-Datei, so dürfen alle Benutzer
crontab aufrufen.
Die allow/deny-Dateien darf nur der Systemverwalter anlegen und
ändern. Sie enthalten pro Zeile eine Benutzerkennung.
Wenn ein privilegierter Benutzer die crontab-Datei eines anderen
Benutzers verändert, ist das Verhalten nicht vorhersagbar. Der privi-
legierte Benutzer sollte sich zuerst mit su und der Benutzerkennung
des anderen Benutzers die Rechte verschaffen, mit denen er wirksame
Änderungen an dessen crontab-Datei vornehmen kann.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
crontab(1) crontab(1)
Vorsicht:
Wenn Sie crontab versehentlich ohne Argumente aufrufen, dürfen Sie das
Kommando nicht mit CTRL-D abbrechen! Denn in diesem Fall würden sämt-
liche Einträge in Ihrer crontab-Datei gelöscht. Benutzen Sie statt
dessen DEL.
OPTIONEN
Format 1: Kommandoaufträge erteilen
crontab [--] [datei]
Wenn Sie mit crontab einen Kommandoauftrag erteilen wollen, geben Sie
an:
- das Kommando (bzw. die Shell-Prozedur/das Programm), das ausgeführt
werden soll, und
- den Zeitpunkt, zu dem das Kommando ausgeführt werden soll (z. B.
jeden Freitag oder jeden 15. Januar).
Rufen Sie crontab im obigen Format auf, dann schreibt crontab diese
Angaben in Ihre crontab-Datei
/var/spool/cron/crontabs/benutzerkennung. Der Prozeß /etc/cron über-
prüft jede Minute, ob Kommandos in den jeweiligen crontab-Datei ausge-
führt werden sollen, und veranlaßt gegebenenfalls die Ausführung.
Um kommando auszuführen, ruft crontab von Ihrem Home-Verzeichnis aus
eine neue Shell (sh) auf. crontab richtet zu jeder Shell eine Stan-
dardumgebung ein, mit den Variablen HOME, LOGNAME, SHELL (/bin/sh) und
PATH (:/bin:/usr/bin:/usr/lbin). Wenn Sie Ihre .profile-Datei ausfüh-
ren lassen wollen, müssen Sie dies in Ihrer crontab-Datei explizit
angeben.
Werden in der crontab-Datei die Standardausgabe und Standardfehleraus-
gabe der Kommandos nicht umgelenkt, dann erhalten Sie sowohl die Stan-
dardausgabe als auch die Standardfehlerausgabe über mail.
Pro Benutzerkennung gibt es höchstens eine crontab-Datei. Existiert
die crontab-Datei /var/spool/cron/crontabs/benutzerkennung noch nicht,
so wird sie beim crontab-Aufruf neu angelegt. Existiert sie bereits,
so wird sie überschrieben. Wenn Sie also mit crontab zusätzliche Kom-
mandoaufträge erteilen wollen, dann verwenden Sie die Option -e.
-- Ende der Optionenliste. Die Angabe ist nötig, wenn datei mit -
beginnt.
datei
Name der Datei, die die auszuführenden Kommandos und die Zeit-
punkte der Ausführung enthält.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
crontab(1) crontab(1)
datei muß dem unten beschriebenen Aufbau entsprechen (siehe AUF-
BAU EINER crontab-DATEI).
datei nicht angegeben:
crontab liest den Eingabetext von der Standardeingabe. Der Text,
den Sie in diesem Fall eingeben, muß dem unten beschriebenen Auf-
bau entsprechen (siehe AUFBAU EINER crontab-DATEI).
Format 2: Erteilte Aufträge ausgeben
crontab -l [benutzerkennung]
-l (l - list) crontab gibt den Inhalt Ihrer crontab-Datei
/var/spool/cron/crontabs/benutzerkennung aus.
Ist diese Datei nicht vorhanden, erhalten Sie eine Fehlermeldung
(siehe FEHLERMELDUNGEN).
benutzerkennung
Ist benutzerkennung angegeben, wird die crontab-Datei des zugehö-
rigen Benutzers gezeigt. Die Angabe von benutzerkennung ist
jedoch nur dem Systemverwalter erlaubt.
Format 3: Erteilte Aufträge löschen
crontab -r [benutzerkennung]
-r (r - remove) crontab löscht Ihre crontab-Datei
/var/spool/cron/crontabs/benutzerkennung.
benutzerkennung
Ist benutzerkennung angegeben, wird die crontab-Datei des zugehö-
rigen Benutzers gelöscht. Die Angabe von benutzerkennung ist
jedoch nur dem Systemverwalter erlaubt.
Format 4: Erteilte Aufträge editieren
crontab -e [benutzerkennung]
-e (e - edit) Mit dieser Option können Sie eine Kopie Ihrer
crontab-Datei oder, falls diese nicht existiert, eine leere Datei
editieren und als aktuelle crontab-Datei speichern. Die Umge-
bungsvariable VISUAL legt fest, welcher Editor aufgerufen wird.
Ist VISUAL nicht definiert, so wird die Umgebungsvariable EDITOR
überprüft. Ist auch EDITOR nicht definiert, so wird ed aufgeru-
fen.
benutzerkennung
Ist benutzerkennung angegeben, wird die crontab-Datei des zugehö-
rigen Benutzers bearbeitet. Die Angabe von benutzerkennung ist
jedoch nur dem Systemverwalter erlaubt.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
crontab(1) crontab(1)
AUFBAU EINER crontab-DATEI
Eine crontab-Datei bzw. der Eingabetext, den Sie beim crontab-Aufruf
übergeben (siehe Format 1), muß folgendermaßen aufgebaut sein:
Der Text besteht
- aus Zeilen, die einen Kommandoauftrag enthalten;
- eventuell aus Kommentarzeilen.
Leerzeilen sind nicht erlaubt.
Zeilen mit einem Kommandoauftrag
Die Zeilen, die einen Kommandoauftrag enthalten, bestehen jeweils aus
sechs Feldern, die durch Leer- oder Tabulatorzeichen voneinander
getrennt sind. Die Felder enthalten folgende Angaben:
_____________________________________________________________________
| 1 | 2 | 3 | 4 | 5 | 6 |
|________|__________|_______________|________|____________|__________|
| Minute | Stunde | Tag im Monat | Monat | Wochentag | Kommando|
|________|__________|_______________|________|____________|__________|
Die Felder 1 bis 5 legen den Zeitpunkt fest, zu denen das in Feld 6
angegebene Kommando ausgeführt werden soll.
Minute Mögliche Angaben: 0-59 oder muster
Stunde Mögliche Angaben: 0-23 oder muster
Tag im Monat Mögliche Angaben: 1-31 oder muster
Monat Mögliche Angaben: 1-12 oder muster
Wochentag Mögliche Angaben: 0-6 (0 = Sonntag) oder muster
Kommando Name des Kommandos, das zu dem angegebenen Zeitpunkt
ausgeführt werden soll.
Mit Hilfe des Prozentzeichens % stellen Sie dem Kommando
die Standardeingabe zur Verfügung. Die Shell interpre-
tiert jedes Prozentzeichen im Kommandofeld, das nicht
durch einen Gegenschrägstrich \ entwertet ist, als
Neue-Zeile-Zeichen. Sie führt den Inhalt des Kommando-
feldes nur bis zum ersten nicht entwerteten Prozentzei-
chen oder Neue-Zeile-Zeichen aus; der Rest des Feldes
wird dem Kommando als Standardeingabe übergeben (siehe
Beispiel 3).
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
crontab(1) crontab(1)
muster kann sein:
- ein Stern * (steht für alle zulässigen Werte)
- ein Bereich zahl-zahl
- eine Liste von zulässigen Zahlen oder Bereichen; die Elemente der
Liste sind durch Kommas getrennt.
Beispiel: 1,3,5 oder 1-3,5
Angabe des Tages
Für die Angabe des Tages stehen zwei Felder zur Verfügung: das 3. Feld
(Tag im Monat) und das 5. Feld (Wochentag).
Wenn Sie das 3. Feld und zugleich das 5. Feld mit einer Zahl, einem
Bereich oder einer Liste besetzen, sind beide Angaben unabhängig
voneinander gültig.
Zum Beispiel bewirkt der Eintrag
0 0 1,15 3 1 kommando
in der crontab-Datei, daß kommando sowohl am 1. und 15. März als auch
an jedem Montag im März aufgerufen wird.
Wenn Sie für die Angabe des Tages nur ein Feld besetzen wollen, müssen
Sie in das andere Feld einen Stern schreiben.
Zum Beispiel bewirkt der Eintrag
0 0 * 3 1 kommando
in der crontab-Datei, daß kommando nur an jedem Montag im März aufge-
rufen wird.
Kommentarzeilen
Eine Kommentarzeile enthält in Spalte 1 das Nummernzeichen #. Darauf
kann beliebiger Text folgen. Kommentarzeilen können Sie verwenden, um
die Kommandoaufträge zu erläutern oder um die Aufträge zur besseren
Übersicht in Abschnitte zu gliedern. Beachten Sie, daß der Eingabe-
text, den Sie an crontab übergeben, beliebig viele Kommentarzeilen,
aber keine Leerzeilen enthalten darf.
FEHLERMELDUNGEN
crontab: you are not authorized to use cron. Sorry.
Sie sind nicht berechtigt, crontab aufzurufen. Siehe Vor dem Aufruf
beachten.
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
crontab(1) crontab(1)
Format 1
crontab: can't open your crontab file.
Sie haben crontab mit dem Namen einer Datei aufgerufen, die nicht exi-
stiert oder auf die nicht zugegriffen werden kann.
crontab: error in previous line; ...
Hat eine Zeile des Eingabetextes, den Sie an crontab übergeben haben,
nicht den richtigen Aufbau, dann gibt crontab diese Zeile aus, gefolgt
von obiger Fehlermeldung. Anstelle der drei Punkte steht die genauere
Beschreibung des Fehlers, z. B.
unexpected character found in line
Ungültiges Zeichen in der Zeile gefunden
number out of bounds
Eine angegebene Zahl liegt außerhalb der zulässigen Grenzen.
Format 2
crontab: can't open your crontab file.
Ihre crontab-Datei /var/spool/cron/crontabs/benutzerkennung existiert
nicht. Sie können sie also auch nicht mit crontab -l lesen.
INTERNATIONALE UMGEBUNG
Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
texte. Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert
ist, wird der Wert von LANG als Standardwert herangezogen. Ist auch
LANG nicht oder als leere Zeichenkette definiert, verhält sich das
System so, als wäre es nicht internationalisiert.
Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
Bereich der Internationalisierung.
BEISPIELE
Beispiel 1
Der Rechner soll Sie jedes Jahr am 15. Mai an den Geburtstag von Tante
Emma erinnern. Dazu legen Sie eine Datei geburtstag mit folgendem
Inhalt an:
0 0 15 5 * echo Tante Emma hat heute Geburtstag !!!
Beachten Sie, daß Sie nur für den Tag im Monat eine Angabe machen wol-
len, nicht für den Wochentag. Deshalb müssen Sie in das Feld für den
Wochentag einen Stern schreiben.
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98
crontab(1) crontab(1)
Nun übergeben Sie Ihre crontab-Datei geburtstag:
$ crontab geburtstag
Sie erhalten dann jeden 15. Mai um 0 Uhr die betreffende Nachricht
über mail. Das funktioniert natürlich nur dann, wenn der Rechner in
dieser Nacht nicht abgeschaltet ist.
Beispiel 2
Sie möchten eine Kollegin und sich selbst jeden Montag um 13 Uhr 30 an
die Skigymnastik am Abend erinnern. Die Nachricht soll auf den Bild-
schirm ausgegeben werden. Sie sitzen am Bildschirm tty007, Ihre Kolle-
gin am Bildschirm tty014. Sie können in den Eingabetext Kommentarzei-
len einfügen, damit Sie ihn später mit crontab -l besser lesen können.
Ihre crontab-Datei könnte dann z. B. so aussehen:
# * = alle zulaessigen Werte
# n-n = Bereich
# n,n = Liste
# Wochentag: 0 = Sonntag
#
# Min Std Tag(Mon) Mon Tag(Wo) Kommando
#
30 13 * * 1 echo Heute abend Skigymnastik ! \
>/dev/tty007
30 13 * * 1 echo Heute abend Skigymnastik ! \
>/dev/tty014
Ihre Kollegin und Sie selbst erhalten dann jeden Montag um 13 Uhr 30
die Meldung "Heute abend Skigymnastik !" auf den Bildschirm (und nicht
in den Postkasten).
Beispiel 3
Sie möchten der Benutzerin doro, die am Rechner brummbox arbeitet,
jeden Montag mit mail die folgende Nachricht schicken:
Guten Morgen,
schoene Woche...
Dazu schreiben Sie den folgenden Eintrag in Ihre crontab-Datei:
0 0 * * 1 mail doro@brummbox %Guten Morgen, %schoene Woche...
UMGEBUNGSVARIABLEN
VISUAL Die Umgebungsvariable VISUAL legt bei Verwendung der Option
-e fest, welcher Editor benutzt wird.
EDITOR Falls VISUAL nicht gesetzt ist, legt EDITOR bei der Verwen-
dung der Option -e fest, welcher Editor benutzt wird. Stan-
dardwert ist vi.
Seite 7 Reliant UNIX 5.44 Gedruckt 11/98
crontab(1) crontab(1)
DATEIEN
/etc/cron.d/cron.allow
Liste der Benutzerkennungen mit Ausführrecht für crontab. In
jeder Zeile steht jeweils eine Benutzerkennung.
/etc/cron.d/cron.deny
Liste der Benutzerkennungen ohne Ausführrecht für crontab. In
jeder Zeile steht jeweils eine Benutzerkennung.
/var/spool/cron/crontabs/benutzerkennung
crontab-Datei des Benutzers benutzerkennung.
SIEHE AUCH
at(1), atq(1), atrm(1), mail(1), sh(1), su(1), vi(1), cron(1M).
Seite 8 Reliant UNIX 5.44 Gedruckt 11/98