![]() ![]() ![]() |
![]() ![]() |
Es gibt Programme, die sollten in regelmäßigen Abständen laufen, z.B.
um das Postfach auf neu ankommende Mail zu überprüfen.
Hierfür existiert ein eigener Dämon crond
, der alle in
bestimmten Tabellen aufgeführten Maßnahmen zu gegebener Zeit veranlasst.
Für den Systemverwalter besteht die Möglichkeit, bestimmte
wiederkehrende Verwaltungsaufgaben in die Datei /etc/crontab
einzutragen:
# Kommandos werden unter dieser Shell ausgefuehrt # SHELL=/bin/sh # Kommandos werden in diesen Pfaden gesucht # PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin # die Ausgaben der Kommandos werden per Mail an root geleitet # MAILTO=root 53 6 * * * $HOME/bin/cron.daily 0 * * * * test -x /usr/sbin/faxqclean && /usr/sbin/faxqclean 25 23 * * * test -e /usr/sbin/faxcron && sh /usr/sbin/faxcron | mail FaxMaster
Zu Beginn einer solchen crontab
können bestimmte Einstellungen
vorgenommen werden, die die Ausführung der in der Tabelle enthaltenen
Kommandos steuern. Im Beispiel werden die Shell, die zur Interpretation
der Kommandos genutzt wird, die Suchpfade nach ausführbaren Programmen
und die Ausgabeumleitung festgelegt.
Es folgen die Einträge der Art "Wann ist was zu tun", wobei 5 Felder das "Wann" beschreiben und der Rest das "Was". Schauen wir uns die Zeitfelder genauer an; von links nach rechts besitzen sie folgende Bedeutung:
Feld | Zeit | Zulässige Werte |
1 | Minute | 0-59 |
2 | Stunde | 0-23 |
3 | Tag | 0-31 |
4 | Monat | 0-12, jan, feb, ..., dec |
5 | Wochentag | 0-7, sun (entspricht 0 oder 7), mon, ..., sat |
Jedes Feld erlaubt auch die Eingabe mehrerer Werte. Die nachfolgende Tabelle fasst die verschiedenen Syntaxvarianten zusammen, die Beispiele beziehen sich - sofern nicht anders angegeben - auf Minuten:
Syntax | Beispiel/Bemerkung | |
Voller Bereich | * |
0, 1, 2, ..., 59 |
Ausgewählte Bereiche | 1-5 |
1, 2, 3, 4, 5 |
Liste | 2,3,11,12 | Nur an den angegebenen Werten |
2,3,30-40 | Kombination aus Liste und Bereich | |
Schrittweite | */2 | aller zwei Minuten (0, 2, ..., 58) |
Tag, Wochentag und Monat können auch als englische Namen (die ersten drei Buchstaben) angegeben werden. Klein- und Großschreibung werden dabei nicht unterschieden. Bereiche sind bei der Verwendung von Namen nicht erlaubt.
Das Editieren der /etc/crontab
ist selbstverständlich nur dem
Systemadministrator gestattet, dem gewöhnlichen Nutzer steht das Kommando
crontab
zur Verfügung, das ihm eine eigene Tabelle im
Verzeichnis /var/crond/tabs
unter seinem Nutzernamen generiert.
Ein Nutzer kann mit
user@sonne> crontab -e
seine eigene crontab-Datei editieren und mit
user@sonne> crontab -l
die Einträge betrachten. Ein direktes Editieren ist nicht möglich, da
die Datei root
gehört!
Um zum Beispiel den Feierabend am Rechner nicht zu verschlafen hilft:
user@sonne> crontab -e no crontab for user - using an empty one ... 0 20 * * 1-5 echo -e "E.T. will nach Hause \a" ... crontab: installing new crontab
das einen um 20.00 Uhr an jedem Wochentag an den rechtzeitigen Abschied
erinnert, indem ein
Piepton erklingt und wir vom
crond
eine Mail erhalten.
Wir überzeugen uns noch schnell vom richtigen Eintrag:
user@sonne> crontab -l # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.1491 installed on Fri Nov 13 13:30:46 1998) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) 0 20 * * 1-5 echo -e "E.T. will nach Hause \a"
![]() ![]() ![]() |
![]() ![]() |