crontab ist sowohl ein Dateiname ({{{/etc/crontab}}}) als auch ein Befehl, mit dem Steuerungsdateien für [[cron]] verwaltet werden. Die Datei {{{/etc/crontab}}} ist die sog. System-Crontab, auf die nur ''root'' Zugriffsrechte hat. Auf vielen Systemen werden Skripte und Programme (oder Links darauf) in den Verzeichnissen {{{/etc/cron.hourly,daily,weekly,monthly}}} automatisch in dem entsprechenden Intervall abgearbeitet. Eigene Crontabs werden mit dem Befehl {{{crontab -e}}} verwaltet - dazu wird i.d.R. [[vi]] aufgerufen. ''root'' darf zusätzlich die Crontabs anderer Benutzer editieren, dazu wird der Benutzername mit der Option {{{-u}}} an das Kommando angehängt. Eine crontab-Datei ist eine Liste von Befehlen, die automatisch zu einem bestimmten Zeitpunkt ausgeführt werden. Eine Zeile kann einen Befehl oder einen Kommentar enthalten. Kommentare werden mit einem `#` am Zeilenanfang markiert. Vor jedem Befehl stehen fünf Zahlen, mit denen die Aufrufhäufigkeit eingestellt wird: ||1.||Minute||0-59|| ||2.||Stunde||0-23|| ||3.||Tag||1-31|| ||4.||Monat||1-12 oder Jan, Feb, Mar, ..., Dec|| ||5.||Wochentag||0-7 oder Mon-Sun, wobei 0=Sun, 1=Mon, ..., 6=Sat, 7=Sun|| Für mehrere Werte können Kommata, für Bereiche können Bindestriche und für alles Mögliche kann * verwendet werden. = Beispiele = Eine User-crontab-Datei, die jeden Mittwoch um 5:30 Uhr morgens {{{/usr/sbin/programm}}} startet, sieht so aus: {{{ 30 5 * * 3 /usr/sbin/programm}}} Eine User-crontab-Datei, die jeden Freitag und jeden 13. um 0:30 Uhr morgens {{{/usr/sbin/programm}}} startet, sieht so aus: {{{ 30 0 13 * Fri /usr/sbin/programm}}} Eine User-crontab-Datei, die alle fünf Minuten {{{/usr/sbin/programm}}} startet, sieht so aus: {{{ */5 * * * * /usr/sbin/programm}}} = Tipps & Tricks = * Wenn die Variable EDITOR gesetzt ist, wird beim Editieren der dort konfigurierte Editor aufgerufen. {{{ EDITOR=mcedit crontab -e }}} Mit crontab -l kann man sich die aktuelle crontab anzeigen lassen. Um unerwünschte (Fehler-)Ausgaben zu unterdrücken, kann man eine Fehlerumleitung auf /dev/null verwenden. /usr/sbin/programm >/dev/null 2>&1 Die Abarbeitung der Cron-Jobs wird meistens in Form von Mails an den User protokolliert. Bei Debian kann man auch einen Job bei jedem Reboot ausführen lassen. siehe man 5 crontab @reboot. Das kann auch jeder user benutzen um z.B. fetchmail -d .. u.s.w. zu starten. :) Für die Ausgabe von Daten in eine Logfile könnte auch das hier evtl. interessant sein: {{{ Befehl 1> logfile-$(date +%Y-%m-%d-%H-%M-%S).log }}}