Crontab-Syntax für den Wochentag

204

Läuft in crontab das Feld Wochentag von 0 - 6oder 1 -7?

Ich sehe widersprüchliche Informationen dazu. Wikipedia-Staaten 0-6und andere Websites, die ich gesehen habe, sind 1-7.

Auch was wäre die Implikation oder entweder verwenden 0oder 7falsch? dh würde der Cron noch laufen?

Marty Wallace
quelle

Antworten:

372

0und 7beide stehen für Sonntag, Sie können den gewünschten verwenden, sodass das Schreiben von 0-6 oder 1-7 das gleiche Ergebnis hat.

Als auch durch @Henrik vorgeschlagen, ist es möglich , Zahlen zu ersetzen durch verkürzte Namen der Tage, wie MON, THUetc:

0 - Sun      Sunday
1 - Mon      Monday
2 - Tue      Tuesday
3 - Wed      Wednesday
4 - Thu      Thursday
5 - Fri      Friday
6 - Sat      Saturday
7 - Sun      Sunday

Grafisch:

 ┌────────── minute (0 - 59)
 │ ┌──────── hour (0 - 23)
 │ │ ┌────── day of month (1 - 31)
 │ │ │ ┌──── month (1 - 12)
 │ │ │ │ ┌── day of week (0 - 6 => Sunday - Saturday, or
 │ │ │ │ │                1 - 7 => Monday - Sunday)
 ↓ ↓ ↓ ↓ ↓
 * * * * * command to be executed

Wenn Sie Tag für Tag angeben möchten, können Sie Tage durch Kommas trennen. Beispielsweise SUN,MON,THUwird der Befehl nur sonntags und montags montags ausgeführt.

Weitere Details finden Sie im Wikipedia-Artikel über Cron .

fedorqui 'SO hör auf zu schaden'
quelle
4
Ok, das ist es, was ich nicht realisiert habe. Sonntag kann eine 0 oder 7 sein. Danke
Marty Wallace
15
Seien Sie sich bewusst, dass Sie nicht tun können : Sat-Sun, nur 6-7oderSat,Sun
pkowalczyk
Können Sie bestätigen, dass die Groß- und Kleinschreibung nicht berücksichtigt wird? Sie wechseln ein paar Mal unter SUN, Sun, Sundayin Ihrer Antwort
MichaelChirico
1
@ MichaelChirico oh, guter Punkt. Überprüfen Wikipedia-Artikel über Cron las ich den Monat und Wochentag Abkürzungen sind nicht abhängig .
fedorqui 'SO hör auf zu schaden'
104
    :-) Sunday    |    0  ->  Sun
                  |  
        Monday    |    1  ->  Mon
       Tuesday    |    2  ->  Tue
     Wednesday    |    3  ->  Wed
      Thursday    |    4  ->  Thu
        Friday    |    5  ->  Fri
      Saturday    |    6  ->  Sat
                  |  
    :-) Sunday    |    7  ->  Sun

Wie Sie oben sehen können und wie bereits gesagt, die Zahlen 0und7 beide dem Sonntag zugeordnet. Es sind auch die englischen abgekürzten Wochentage aufgeführt, die auch in der Crontab verwendet werden können.

Beispiele für die Verwendung von Zahlen oder Abkürzungen

15 09 * * 5,6,0             command
15 09 * * 5,6,7             command
15 09 * * 5-7               command
15 09 * * Fri,Sat,Sun       command

Die vier Beispiele machen dasselbe und führen jeden Freitag, Samstag und Sonntag um 9.15 Uhr einen Befehl aus.

Im Detail

Zwei Zahlen 0und 7für Sonntag können nützlich sein, um Wochentagsbereiche zu schreiben, die mit beginnen 0oder mit enden 7. Sie können also Bereiche schreiben, die mit Sonntag beginnen oder damit enden, wie 0-2oder 5-7zum Beispiel (Bereiche müssen mit der niedrigeren Zahl beginnen und mit der höheren enden). Die Abkürzungen können nicht zum Definieren eines Wochentagsbereichs verwendet werden.

Henrik
quelle
1
Aus Gründen der Übersichtlichkeit können die Abkürzungen nicht zum Definieren eines Wochentagsbereichs verwendet werden. Die Aussage hier scheint eine Möglichkeit zu sein zu sagen, dass man Abkürzungen nicht durch Bindestriche, sondern nur durch Kommas trennen kann. Mit anderen Worten, Fri,Sat,Sunkann nicht verkürzt werden Fri-Sun.
Patrick Dark
8

Sie können auch Tagesnamen wie MonMontag, TueDienstag usw. verwenden. Es ist menschlicher.

Cyril Bouthors
quelle
Dies funktioniert bei einigen Distributionen nicht. Beim Testen mit Ubuntu 14.04.3 LTS erhielt ich "/tmp/crontab.Nuq9GE/crontab":24: schlechter Wochentag"
0x4B1D
3
@ Nikita auf Tippfehler oder zusätzliche Leerzeichen prüfen. Ich habe sowohl ein "Mo-Fr" als auch ein "Do" in meinem Crontab unter Ubuntu 14.04.3 und beide funktionieren einwandfrei. Ich vermute, wenn zwischen den Zeichen ein Leerzeichen steht, wird ein Fehler angezeigt.
Dale Anderson