Zeitversetzte Arbeiten |
UNIX bietet die Möglichkeit, Befehle zeitversetzt auszuführen. Für regelmäßig wiederkehrende Arbeiten gibt es die crontab. Soll ein Job genau einmal laufen, verwendet man das Kommando at.
gaston > date Don Jan 3 20:34:44 CET 2002 |
Vom Administrator kann der Befehl auch verwendet werden, um die Uhrzeit zu setzen. Dabei wird direkt hinter dem Befehl das neue Datum in direkter Ziffernfolge ohne Sonderzeichen gesetzt. Beispiel:
gaston # date 01032044 Don Jan 3 20:44:00 CET 2002 |
Die 8 Ziffern werden nach dem Muster MMDDhhmm angegeben, also je zwei Stellen für Monat, Tag, Stunde und Minute. Es kann das Jahr mit zwei oder vier Stellen angehängt werden, wenn das ebenfalls zu ändern ist.
gaston > date +"%d.%m.%Y" 03.01.2002 |
Die wichtigsten Formatzeichen haben folgende Bedeutung:
| Kürzel | Bedeutung |
|---|---|
| %H | Stunden (00-23) |
| %M | Minuten (00-59) |
| %S | Sekunden (00-59) |
| %d | Tag im Monat (00-31) |
| %m | Monat (00-12) |
| %y | zweistelliges Jahr (00-99) |
| %Y | Die vollständige Jahreszahl |
Der besondere Nutzen der Formatierung wird deutlich, wenn man Protokolldateien Namen vergeben will, die mit ihrer Entstehung zu tun haben, wie man es in Skripten oder crontabs braucht. Der Dateiname im folgenden Beispiel würde am 3. Januar proto03 heißen.
proto`date +%d` |
hwclock --systohc |
crontab -l |
crontab -l > meincrontab vi meincrontab crontab < meincrontab rm meincrontab |
Die crontab ist eine Textdatei, in der zunächst in mehreren Spalten das Wiederholungsintervall festgelegt wird. In der letzten Spalte wird das zu startende Kommando eingetragen. Das Beispiel hat der besseren Lesbarkeit halber zu Anfang zwei Kommentarzeilen. Die müssen in der crontab nicht stehen.
# Minute Stunde Tag(Monat) Monat Tag(Woche) Kommando # (0-59) (0-23) (1-31) (1-12) (1-7; 1=Mo) 0 4 * * * program1 0 9 1,15 * * program2 0 2 * * 1,2,3,4,5 program3 |
Die ersten fünf Spalten beschreiben den Startzeitpunkt und die sechste das auszuführende Kommando. Ein Stern bedeutet, dass die Ausführung stattfindet, egal welchen Wert die Kategorie hat. Eine von Kommata getrennte Zahlenkolonne gibt mehrere Zeiten an. In Beispiel:
Beim Kommando crontab kann mit der Option -u der Benutzer angegeben werden, dessen crontab bearbeitet werden soll. Dabei ist das Verändern fremder crontabs natürlich das Privileg des Superusers.
# at 16:00 at>ping comeback at> ^D # |
Sollte im Beispiel 16.00 Uhr bereits überschritten sein, wird der ping erst morgen um diese Zeit ausgeführt. Man kann auch das Datum der Ausführung festlegen. Dieses hat das Format DD.MM oder DD.MM.YY, dabei kann das Jahr auch vierstellig sein. Sehr praktisch ist es auch, dass man eine Zeitdifferenz angeben kann. Das Beispiel wird eine Minute nach Start des Kommandos beginnen.
at now + 1 minute |
|
Diese Seite basiert auf Inhalten aus dem Buch
Arnold Willemer: Wie werde ich UNIX-Guru Verlagsrechte bei galileo computing |
| Homepage |
(C) Copyright 2002 Arnold Willemer
|