Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
tux:cron [2011/05/23 11:31] wikisysop [/etc/cron.d] |
tux:cron [2012/01/17 14:07] (aktuell) wikisysop [/etc/cron.d] |
||
---|---|---|---|
Zeile 17: | Zeile 17: | ||
</code> | </code> | ||
- | -> So bedeutet zB >><fc #008000>15 8 * * * mpg321 -z /home/pronto/mp3/*</fc><<, dass jeden Tag pünktlich um viertel nach Acht alle Dateien im Verzeichnis >>/home/pronto/mp3<< in zufälliger Reihenfolge abgespielt werden. Wer am Wochenende gerne länger schlafen möchte, ersetzt das letzte Sternchen durch die entsprechenden Wochentage (durch Komma getrennt) in zB >><fc #008000>1,2,3,4,5</fc><< oder definiert einen ganzen Bereich zB mit >><fc #008000>1-5</fc><<. Auch Kombinationen sind Möglich: Steht im vierten Feld, das den Monat bezeichnet, zB >><fc #008000>1-4,7,10-12</fc><< ist damit von Januar bis April, Juli und Oktober bis Dezember gemeint. | + | **Beispiele:** |
+ | |||
+ | <code xorg_conf|Jeden Tag um 08:15 Uhr>15 8 * * *</code> | ||
+ | |||
+ | <code xorg_conf|Nur Mo, Di, Mi, Do, Fr um 08:15 (Variante 1)>15 8 * * 1,2,3,4,5</code> | ||
+ | |||
+ | <code xorg_conf|Nur Mo, Di, Mi, Do, Fr um 08:15 (Variante 2)>15 8 * * 1-5</code> | ||
+ | |||
+ | <code xorg_conf|Jeden Tag um 08:15 aber nur im Januar bis April, Juli und Oktober bis Dezember>15 8 * 1-4,7,10-12 * </code> | ||
+ | |||
+ | <code xorg_conf|Jede fünfte und 35. Minute einer Stunde>05,35 * * * *</code> | ||
+ | |||
+ | <code xorg_conf|Alle fünf Minuten (umständliche Variante)>5,10,15,20,25,30,35,40,45,50,55 * * * *</code> | ||
+ | |||
+ | <code xorg_conf|Alle fünf Minuten (elegante Variante)>*/5 * * * *</code> | ||
+ | |||
+ | <code xorg_conf|Alle zwei Stunden>* */2 * * *</code> | ||
- | Möchten Sie statt zu einem festgelegten Startzeitpunkt einen Task zB alle fünf Minuten laufen lassen, stellen Sie im Minuten Feld einfach ein >><fc #008000>*/</fc><< voraus. Alle fünf Minuten wäre demnach >><fc #008000>*/5 * * * *</fc><< oder alle zwei Stunden >><fc #008000>* */2 * * *</fc><< usw. | ||
==== »crontab« anlegen und bearbeiten ==== | ==== »crontab« anlegen und bearbeiten ==== | ||
Zeile 58: | Zeile 73: | ||
==== Die systemweite »crontab« → /etc/crontab ==== | ==== Die systemweite »crontab« → /etc/crontab ==== | ||
- | Neben den >>crontabs<< der einzelnen Benutzer gibt es mit der >>/etc/crontab<< eine systemweite Cron-Tabelle, die Aufgaben der Systemverwaltung automatisiert. Im Gegensatz zu den Cron-Tabellen der einzelnen Benutzer gibt es hier ein siebtes Feld, welches den Usernamen enthält unter welchen der Befehl ausgeführt wird. Eine typische >>crontab<< auf einem Debian Linux System sieht zB folgendermaßen aus: | + | Neben den >><fc #008000>crontabs</fc><< der einzelnen Benutzer gibt es mit der >><fc #008000>/etc/crontab</fc><< eine systemweite Cron-Tabelle, die Aufgaben der Systemverwaltung automatisiert. Im Gegensatz zu den Cron-Tabellen der einzelnen Benutzer gibt es hier ein siebtes Feld, welches den Usernamen enthält unter welchen der Befehl ausgeführt wird. Eine typische >><fc #008000>crontab</fc><< auf einem Debian Linux System sieht zB folgendermaßen aus: |
<code bash|/etc/crontab> | <code bash|/etc/crontab> | ||
Zeile 76: | Zeile 91: | ||
Die >><fc #008000>test</fc><<((http://unixhelp.ed.ac.uk/CGI/man-cgi?test)) Anweisung >><fc #008000>test -x /usr/sbin/anacron</fc><< bewirkt, dass die Programme in >><fc #008000>/etc/cron.[daily|weekly|monthly]</fc><< nur dann ausgeführt werden, wenn >><fc #008000>anacron</fc><<((http://linux.die.net/man/8/anacron)) **nicht** eingerichtet ist, was standardmäßig auch nicht der Fall ist und bei einem 24/7 Server auch nicht notwendig ist, da dieser zu jedem geplanten Zeitpunkt läuft. Wäre >><fc #008000>anacron</fc><< eingerichtet, würden die Befehle auch dann beim Systemstart (mit einer konfigurierbaren Verzögerung) ausgeführt werden, wenn das System zum angegebenen Zeitpunkt nicht eingeschaltet war, >>cron<< tut dies **nicht**. Die Kommandoverkettung >><fc #008000>||</fc><< (= EXOR ≙ exklusives Oder) führt das zweite Kommando nur dann aus, wenn das erste **erfolglos** war. Andernfalls würden >>cron<< und >>anacron<< beide versuchen die Aufträge in >><fc #008000>/etc/cron.[daily|weekly|monthly]</fc><< auszuführen. Die >><fc #008000>run-parts</fc><<((http://unixhelp.ed.ac.uk/CGI/man-cgi?run-parts+8)) Anweisung führt dann jedes Skript im angegeben Verzeichnis aus. | Die >><fc #008000>test</fc><<((http://unixhelp.ed.ac.uk/CGI/man-cgi?test)) Anweisung >><fc #008000>test -x /usr/sbin/anacron</fc><< bewirkt, dass die Programme in >><fc #008000>/etc/cron.[daily|weekly|monthly]</fc><< nur dann ausgeführt werden, wenn >><fc #008000>anacron</fc><<((http://linux.die.net/man/8/anacron)) **nicht** eingerichtet ist, was standardmäßig auch nicht der Fall ist und bei einem 24/7 Server auch nicht notwendig ist, da dieser zu jedem geplanten Zeitpunkt läuft. Wäre >><fc #008000>anacron</fc><< eingerichtet, würden die Befehle auch dann beim Systemstart (mit einer konfigurierbaren Verzögerung) ausgeführt werden, wenn das System zum angegebenen Zeitpunkt nicht eingeschaltet war, >>cron<< tut dies **nicht**. Die Kommandoverkettung >><fc #008000>||</fc><< (= EXOR ≙ exklusives Oder) führt das zweite Kommando nur dann aus, wenn das erste **erfolglos** war. Andernfalls würden >>cron<< und >>anacron<< beide versuchen die Aufträge in >><fc #008000>/etc/cron.[daily|weekly|monthly]</fc><< auszuführen. Die >><fc #008000>run-parts</fc><<((http://unixhelp.ed.ac.uk/CGI/man-cgi?run-parts+8)) Anweisung führt dann jedes Skript im angegeben Verzeichnis aus. | ||
- | Sie können sich demnach auch dieser bereits vorkonfigurierten Tasks bedienen und Ihr Skript einfach in ein passendes Verzeichnis (daily, weekly oder monthly) legen und >>cron<< den Rest erledigen lassen, wenn sich der Zeitpunkt mit Ihren Anforderungen vereinbaren lässt. Aber auch hier sollten Sie mit Umsicht und Bedacht ans Werk gehen. Vermeiden Sie last-intensive Jobs in den Standardtasks, da ja zum selben Zeitpunkt die anderen Jobs auch ausgeführt werden. Legen Sie sich hierfür einen neuen Eintrag in der >>crontab<< an, der sich mit den vorhandenen Systemressourcen besser vereinbaren lässt oder verwenden Sie >><fc #008000>/etc/cron.d</fc><< | + | Sie können sich demnach auch dieser bereits vorkonfigurierten Tasks bedienen und Ihr Skript einfach in ein passendes Verzeichnis (daily, weekly oder monthly) legen und >>cron<< den Rest erledigen lassen, wenn sich der Zeitpunkt mit Ihren Anforderungen vereinbaren lässt. Aber auch hier sollten Sie mit Umsicht und Bedacht ans Werk gehen. Vermeiden Sie Last-intensive Jobs in den Standardtasks, da ja zum selben Zeitpunkt die anderen Jobs auch ausgeführt werden. Legen Sie sich hierfür einen neuen Eintrag in der >><fc #008000>crontab</fc><< an, der sich mit den vorhandenen Systemressourcen besser vereinbaren lässt oder verwenden Sie >><fc #008000>/etc/cron.d</fc><< |
Zeile 97: | Zeile 112: | ||
\\ \\ | \\ \\ | ||
--- //pronto 2010/11/01 00:12// | --- //pronto 2010/11/01 00:12// | ||
- | <fbl> | ||
{{keywords>crontab cron.houly cron.daily cron.weekly cron.monthly cron.d anacron run-parts}} | {{keywords>crontab cron.houly cron.daily cron.weekly cron.monthly cron.d anacron run-parts}} |