Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

tux:cron [2011/04/17 00:37]
wikisysop
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öchteersetzt das letzte Sternchen durch die entsprechenden Wochentage ​(durch Komma getrenntin 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öglichSteht im vierten Felddas 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 MoDiMi, 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 AprilJuli und Oktober bis Dezember>15 8 * 1-4,​7,​10-12 ​</code> 
 + 
 +<code xorg_conf|Jede fünfte ​und 35Minute 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 30: Zeile 45:
  
 <​xterm>#​ <fc #​008000>​ls -l /​var/​spool/​cron/​crontabs/</​fc> ​ <​xterm>#​ <fc #​008000>​ls -l /​var/​spool/​cron/​crontabs/</​fc> ​
-<fc #ffa500>​-rw------- 1 pronto crontab 263 31. Okt 21:46 pronto</​fc>​+<fc #0000FF>​-rw------- 1 pronto crontab 263 31. Okt 21:46 pronto</​fc>​
 </​xterm>​ </​xterm>​
  
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 71: Zeile 86:
 # #
 </​code>​ </​code>​
-->+
 Hier stehen schon einige Einträge, welche Sie sich zu Nutze machen können, welche aber vermutlich erst mal einer Erklärung bedürfen. Hier finden Sie vier Befehle welche jede Stunde 17 Minuten nach jeder vollen Stunde ausgeführt werden >><​fc #​008000>​cron.hourly</​fc><<,​ jeden Tag um 06:25 >><​fc #​008000>​cron.daily</​fc><<,​ jede Woche am Sonntag um 06:47 >><​fc #​008000>​cron.weekly</​fc><<​ und jeden ersten Tag im Monat um 06:52 >><​fc #​008000>​cron.monthly</​fc><<​ ausgeführt werden. ​ Hier stehen schon einige Einträge, welche Sie sich zu Nutze machen können, welche aber vermutlich erst mal einer Erklärung bedürfen. Hier finden Sie vier Befehle welche jede Stunde 17 Minuten nach jeder vollen Stunde ausgeführt werden >><​fc #​008000>​cron.hourly</​fc><<,​ jeden Tag um 06:25 >><​fc #​008000>​cron.daily</​fc><<,​ jede Woche am Sonntag um 06:47 >><​fc #​008000>​cron.weekly</​fc><<​ und jeden ersten Tag im Monat um 06:52 >><​fc #​008000>​cron.monthly</​fc><<​ ausgeführt werden. ​
  
 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><< ​
  
  
 ==== /etc/cron.d ==== ==== /etc/cron.d ====
  
-Das Verzeichnis >>/​etc/​cron.d/<<​ wird von >>​cron<<​ ebenfalls nach Dateien durchsucht, welche Jobs zum Ausführen enthalten. Jedoch muss hier die Zeitkonfiguration **in** den einzelnen Dateien festgelegt werden. Die Syntax entspricht der >>/​etc/​crontab<<,​ was uA bedeutet, dass das User-Feld besetzt sein muss:+Das Verzeichnis >><fc #008000>/​etc/​cron.d/​</fc><< wird von >><fc #008000>cron</fc><< ebenfalls nach Dateien durchsucht, welche Jobs zum Ausführen enthalten. Jedoch muss hier die Zeitkonfiguration **in** den einzelnen Dateien festgelegt werden. Die Syntax entspricht der >><fc #008000>/​etc/​crontab</fc><<, was uA bedeutet, dass das User-Feld besetzt sein muss:
  
 <code bash|/​etc/​cron.d/​rmtest>​ <code bash|/​etc/​cron.d/​rmtest>​
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}}
tux/cron.1302993420.txt.gz (16148 views) · Zuletzt geändert: 2011/04/17 00:37 von wikisysop
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0