Cron: Unterschied zwischen den Versionen

Aus Zebradem WIKI
Zur Navigation springenZur Suche springen
Zeile 43: Zeile 43:


Mögliche Werte sind die folgenden.
Mögliche Werte sind die folgenden.
Minute Werte von 0 bis 59 oder "*"
 
Stunde Werte von 0 bis 23 oder "*"
Minute Werte von 0 bis 59 oder "*"
Tag Werte von 1 bis 31 oder "*"
Stunde Werte von 0 bis 23 oder "*"
Monat Werte von 1 bis 12, "Jan" bis "Dec", "jan" bis "dec", oder "*"
Tag Werte von 1 bis 31 oder "*"
Wochentag Werte von 0 bis 7 (sowohl 0 wie 7 stehen für den Sonntag), "Sun" bis "Sat", "sun" bis "sat", oder "*"
Monat Werte von 1 bis 12, "Jan" bis "Dec", "jan" bis "dec", oder "*"
Befehl Der auszuführende Befehl mit Optionen oder ein aufzurufendes Skript  
Wochentag Werte von 0 bis 7 (sowohl 0 wie 7 stehen für den Sonntag), "Sun" bis "Sat", "sun" bis "sat", oder "*"
Befehl Der auszuführende Befehl mit Optionen oder ein aufzurufendes Skript  


Beispiele
Beispiele

Version vom 24. Mai 2011, 19:16 Uhr


Das Board mit Freiheiten




Der cron-Daemon ist eine Jobsteuerung von Unix bzw. unixartigen Betriebssystemen wie Linux, Berkeley Software Distribution BSD oder Mac OS X, die wiederkehrende Aufgaben (cronjobs) automatisch zu einer bestimmten Zeit ausführen kann.

Häufig führt der Cron-Daemon wichtige Programme für die Instandhaltung des Systems aus, wie zum Beispiel Dienste für das regelmäßige Archivieren und Löschen von Logdateien.

Crontab

Der Begriff selbst leitet sich ab von griechisch chronos = die Zeit und lat. tabula = die Tafel, oder das Brett und bedeutet demnach soviel wie „Stundenplan“. Die auszuführenden Befehle werden in einer Benutzerkonto|benutzereigenen Tabelle gespeichert, der sogenannten crontab. Diese Tabelle besteht aus sechs Spalten; die ersten fünf dienen der Zeitangabe (Minute, Stunde, Tag, Monat, Wochentag), alle weiteren Zeichen bis zum Zeilenumbruch werden als der auszuführende Befehl aufgefasst. Die einzelnen Spalten werden durch Leerzeichen oder Tabulatoren getrennt.

Beispiel einer Crontab:

#M    S   T M W    Befehl
5     *   * * *    /usr/bin/message.sh   //Der erste Befehl (beginnend mit 5…) wird fünf Minuten nach jeder vollen Stunde
*/5   *   * * *    /usr/bin/message.sh   //der zweite alle 5 Minuten (die Schrittweite wird durch */Schrittweite angegeben)
59    23  * * 0    cp /var/log/messages  //der dritte einmal pro Woche Sonntag um 23:59 Uhr
0     0   * * *    cp /var/log/syslog    //der vierte täglich um 00:00 Uhr
20,30 1   * * 1-5  /usr/bin/work.sh      //und der fünfte Montag bis Freitag jeweils um 01:20 und 01:30 ausgeführt

Cron bietet noch mehr Funktionen, die bei den unten genannten Weblinks eingesehen werden können.

Die Struktur ist wie folgt zu verstehen:

* * * * * auszuführender Befehl
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └──── Wochentag (0-7) (Sonntag =0 oder =7)
│ │ │ └────── Monat (1-12)
│ │ └──────── Tag (1-31)
│ └────────── Stunde (0-23)
└──────────── Minute (0-59)

Die Crontabs haben folgende Form.

Minute Stunde Tag Monat Wochentag Befehl

Mögliche Werte sind die folgenden.

Minute 	Werte von 0 bis 59 oder "*"
Stunde 	Werte von 0 bis 23 oder "*"
Tag 	Werte von 1 bis 31 oder "*"
Monat 	Werte von 1 bis 12, "Jan" bis "Dec", "jan" bis "dec", oder "*"
Wochentag 	Werte von 0 bis 7 (sowohl 0 wie 7 stehen für den Sonntag), "Sun" bis "Sat", "sun" bis "sat", oder "*"
Befehl 	Der auszuführende Befehl mit Optionen oder ein aufzurufendes Skript 

Beispiele

Anzeige von Datum und Uhrzeit auf der Konsole an jedem Tag des Monats stündlich zwischen 9 und 18 Uhr.

0 9-18 * * * date > /dev/console

Anzeige von Datum und Uhrzeit auf der Konsole jeweils Montags und Freitag zu jeder Stunde.

0 * * * 2,5 date > /dev/console

Anzeige von Datum und Uhrzeit auf der Konsole zu jeder geraden zweiten Stunde.

0 */2 * * * date > /dev/console

Anzeige von Datum und Uhrzeit auf der Konsole zu jeder zweiten Stunde zwischen 1 und 6 Uhr (hier also wie "1,3,5").

0 1-6/2 * * * date > /dev/console


In vielen Linux-Distributionen findet man folgende Zeilen in der crontab:

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

Die Cronjobs werden also auf spezielle Verzeichnisse, in denen die Scripte gespeichert sind, ausgelagert. Die Scripte in /etc/cron.hourly werden dann z. B. jede Stunde ausgeführt.

Ansonsten würde die Crontab unter Umständen sehr groß werden.

links