crontab ist ein Hilfsprogramm mit dem Sie Befehle in regelmäßigen Zeitintervallen starten können ohne dabei selbst am System angemeldet sein zu müssen. crontab wird die Ausgabe Ihres Befehls per Mail an Sie schicken. Sie können die Zeitintervalle in Minuten, Stunden, Tagen und sogar Monaten festlegen. Je nach angegebener Option verhält sich crontab unterschiedlich:
Fangen wir mit dem Editieren einer crontab-Datei an. Wenn Sie die Umgebungsvariable EDITOR oder VISUAL gesetzt haben befinden Sie sich nach der Eingabe von crontab -e in Ihrem bevorzugten Editor, anderenfalls wird Vi geöffnet. Eine Zeile in der crontab-Datei besteht aus sechs Feldern. Die ersten fünf Felder bestehen aus den Angaben für die Minuten, Stunden, Tage und Wochentage des Intervalls. Das sechste Feld beinhaltet den auszuführenden Befehl. Zeilen, die am Anfang das Zeichen # aufweisen, werden als Kommentar betrachtet und von crond (dem Programm, das für die Ausführung der crontab-Dateien verantwortlich ist) ignoriert. Hier ist ein Beispiel einer crontab:
# Falls Sie nicht per Mail benachrichtigt werden wollen # kommentieren Sie die folgende Zeile aus: #MAILTO="your_email_address" # # Bericht über neue Bilder alle 2 Tage um 2 Uhr nachmittags, # ausgehend vom oben genannten Beispiel - danach soll die # "stamp"-Datei wieder aktualisiert werden. # Das Zeichen "%" wird als neue Zeile interpretiert. # Dadurch können Sie mehrere Befehle in eine Zeile schreiben. 0 14 */2 * * find /shared/images \ -cnewer /shared/images/stamp \ -a -iregex ".*\.jpe?g" \ -a -not -regex \ ".*/old/.*"%touch /shared/images/stamp # # Am ersten Weihnachtsfeiertag eine Melodie spielen :) 0 0 25 12 * mpg123 $HOME/sounds/merryxmas.mp3 # # Drucke jeden Dienstag um 17 Uhr die Einkaufsliste aus... 0 17 * * 2 lpr $HOME/shopping-list.txt |
Es gibt ausser den hier gezeigten noch mehrere andere Arten, die Zeitintervalle anzugeben. Sie können etwa eine durch Kommata getrennte Folge von bestimmten Zahlen (1,14,23) oder einen Zahlenbereich (1-15), ja, sogar eine Kombination von beiden (1-10,12-20), optional mit einer Schrittangabe (1-12,20-27/2), angeben. Jetzt ist es an Ihnen, hier hilfreiche und sinnvolle Befehle einzugeben!
Sie möchten vielleicht auch einen Befehl eingeben, der einmal zu einer vorbestimmten Zeit, aber nicht regelmäßig ausgeführt wird. Lassen Sie sich beispielsweise an eine Verabredung um 18:00 Uhr erinnern. Sie arbeiten mit X, das Paket X11R6-contrib ist installiert und Sie wollen um 17:30 Uhr an den Aufbruch erinnert werden. Dann ist at das richtige Programm:
$ at 5:30pm # Sie befinden sich jetzt am "at"-Prompt at> xmessage "Zeit, aufzubrechen! Verabredung um 18:00" # Drücken Sie Strg-d zum Verlassen at> <EOT> $ |
Die Zeit kann in mehreren Varianten angegeben werden:
now + <interval>: jetzt plus dem angegebenen Intervall (Optional. Ohne angegebenes Intervall bedeutet es: Jetzt.). Die Syntax für das Interval ist <n> (minuten|stunden|tage|wochen|monate). Sie könnten beispielsweise angeben: now + 1 hour (in einer Stunde ab jetzt), now + 3 days (in drei Tagen ab heute), usw.
<zeit> <tag>: damit wird der Zeitpunkt genau festgelegt. Die Angabe des Parameters <zeit> ist vorgeschrieben. at ist bei der Formatierung sehr liberal: Sie können beispielsweise 0100, 04:20, 2am, 0530pm, 1800 oder einen von drei festgelegten Zeitpunkten angeben: noon, teatime (16:00) oder midnight. Die Angabe des Parameters <tag> hingegen ist optional. Auch diese Angabe kann in verschiedenen Arten erfolgen: 12/20/2001 (also der 20. Dezember 2001) oder in europäischer Art 20.12.2001. Wenn Sie die Jahresangabe weglassen wollen ist nur die europäische Angabe erlaubt: 20.12. Den Monat können Sie auch in Form von Buchstaben eingeben: Dec 20 oder 20 Dec sind beide gültig.
at akzeptiert verschiedene Optionen:
Wie gewohnt finden Sie weitere Optionen in der manpage von at(1).