|
Kommandos zur Zeitsteuerung
at zeit [datum] [+incr] at [-rl] [nummer] Veranlaßt die Ausführung von Kommandos, die über die Standardeingabeeingegeben werden, zu einem angegebenen Zeitpunkt, auch wenn der Benutzer zudiesem Zeitpunkt nicht angemeldet ist. at stützt sich dabei auf dasProgramm atrun, das in regelmäßigen Zeitabständen gestartetwird (in der Regel alle 5 Minuten). Das Kommando gibt die Auftragsnummerund den Zeitpunkt der Ausführung aus. Die Ausgabe der Kommandos (sofernnicht umgeleitet wurde) wird dem Benutzer per mail-Kommando zugestellt.Die auszuführenden Kommandos werden von der Standardeingabe gelesen
(d. h. in den folgenden Zeilen, abgeschlossen mit CTRL-D oder per Eingabeumleitung).
Die Benutzung dieses Kommandos kann explizit erlaubt oder verboten werden.
Die aktuelle Umgebung wird für die at-Prozesse übernommen.
Es gibt zwei besondere Aufrufe:
at -r Auftragsnummer(n) Löscht den genannten Auftrag
at -l [Auftragsnummer(n)] Listet die noch auszuführenden Aufträge
Fehlt bei at -l die Nummer, werden alle Aufträge gelistet.
Optionen:
- zeit
- Ausführungszeitpunkt in
der Form SSMM. Werden nur zwei Ziffern angegeben, sind dies die Stunden.
Ist der Zeitpunkt bereits überschritten, erfolgt der Start des Prozesses
zum angegebenen Zeitpunkt des nächsten Tages. Für die Zeit sind
auch folgende Angaben möglich: "noon" für Mittag, "midnight" für
Mitternacht und "now" für "jetzt" (siehe "increment").
- datum
- Datumsangabe für den Start des Prozesses in der Form "Monat
Tag", oder "Monat Tag, Jahr". Für den Monat werden dreibuchstabige
Kürzel verwendet: Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec.
Für das Datum können auch die Angaben "today" oder "tomorrow"
verwendet werden. Beispiele: "Feb 28", "Oct 15" oder "Feb 28,1991".
- incr
- Relative Zeitangabe, bestehend aus einer Zahl, gefolgt von einem
der Begriffe: "minutes", "hours", "days", "weeks", "years". Um zum Beispiel
einen Prozeß in 3 Stunden starten, gibt man an: at now +3 hours
Einschränkung des at-Kommandos
Die Verwendung des Kommandos kann auf einen bestimmten Benutzerkreis
eingeschränkt werden. Dazu dienen zwei Dateien, usr/lib/cron/at.allow
und usr/lib/cron/at.deny.
- Existiert nur at.allow, wird nur den dort eingetragenen
Benutzern die Verwendung des at-Kommandos erlaubt.
- Existiert nur at.deny, können alle dort nicht
eingetragenen Benutzer das at-Kommando verwenden. Ist die
Datei leer, dürfen es alle Benutzer verwenden.
- Existiert keine der beiden Dateien, darf nur der Superuser das
at-Kommando verwenden.
Ein Beispiel für das at-Kommando: Am 1. Oktober um 22 Uhr wird das Ausdrucken
einer langen Datei gestartet.
at 2200 Oct 1
lp -m superlangedatei.txt
CTRL-D
job 545900100.a at Tue Oct 1 22:00:00 1991
Mit at -r 545900100.a könnte man den o. g. Job wieder löschen.
crontab [-erl]
Das Crontab-Kommando erstellt bzw. bearbeitet eine Auftragsdatei für den cron-Daemon.
Der crond wird nur einmal beim Systemstart aufgerufen. Er prüft in regelmäßigen
Abständen (normalerweise jede Minute) den Inhalt der crontab-Dateien,
in denen Zeitpunkte für automatisch ablaufende Programme festgelegt
sind. Mit dem Kommando crontab kann jeder Benutzer eine crontab-Datei anlegen
und ändern (-e), löschen (-r) oder auflisten (-l). Zum Ändern
wird der voreingestellte Editor (ed oder vi) gestartet (die Festlegung erfolgt durch
die Variable EDITOR). Die Ausgabe der Kommandos, bei denen keine Ausgabeumleitung
erfolgte, wird über mail an den Benutzer gesendet.
Format der crontab-Datei:
Jede Zeile der crontab-Datei enthält sechs Felder (durch Leerzeichen
getrennt). Die ersten fünf Felder sind eine Zeitangabe, das sechste
enthält das auszuführende Kommando. Die fünf Zeit-Felder
sind folgendermaßen aufgebaut:
Statt einer expliziten Zahlenangabe sind auch folgende Angaben möglich:
- Ein Teilbereich, z. B. 1-5
- Eine durch Komma getrennte Liste, z. B.10,20,30,40,50
- Ein * (deckt den gesamten Bereich ab)
Einige Beispiele dazu:
0 0 * * * | Jeden Tag um Mitternacht |
0 9 * * 1 | Jeden Montag um 9 Uhr |
30 10 1 * 1 | Jeden Monatsersten und jeden Montag um 10 Uhr |
30 0,30 8-18 * * * | Täglich alle halbe Stunde aber nur zwischen 8 und 18 |
0,5,10,15,20,25,30,35,40,45,50,55 * * * * | Alle 5 Minuten |
Wie beim at-Kommando kann auch die Benutzung von crontab für bestimmte Benutzer
gesperrt werden. Dazu dienen die Dateien /usr/lib/cron/cron.allow und
/usr/lib/cron/cron.deny, bei denen das gleiche Schema angewendet wird, wie
es schon beim at-Kommando besprochen wurde.
Die Tabellen (crontabs) stehen je nach UNIX-Variante in /etc/cron.d oder
/usr/lib/cron. Beim Erstellen von cron- und at-Jobs sollte man sich
nicht darauf verlassen, daß außer ein paar Standardvariablen irgendwelche
Voreinstellungen verwendbar sind. Benutzen Sie entweder nur absolute Pfade oder eine
explizite Pfad-Definition. Will man keinen Output per E-Mail erhalten, muß der
Output (stdout und stderr) umgeleitet werden (Man kann den Job sehr schnell von
E-Mail auf Dateiausgabe umstellen, indem man alle Kommandozeilen mit
geschweiften Klammern einrahmt und dahinter die Ausgabeumleitung setzt:
{ .... } > Datei 2>&1). Will man nur wenige Kontrollausgaben erzeugen,
lassen sich auch mittels echo >> logfile cron-Jobs loggen. Bei root-cron-Jobs
kann dafür auch die allgemeine Logdatei /var/adm/messages (manchmal
auch /var/log/messages) verwendet werden.
|
|
|