wake-up-neo.net

Crontab Day of the Week-Syntax

In crontab läuft das Feld Wochentag von 0 - 6 oder 1 -7?

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

Auch was wäre die Implikation oder entweder mit 0 oder 7 falsch? würde der cron noch laufen?

175
Marty Wallace

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

Wie von @Henrik vorgeschlagen, ist es auch möglich, Zahlen durch verkürzte Namen von Tagen wie MON, THU usw. zu ersetzen:

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 schließlich Tag für Tag angeben möchten, können Sie die Tage durch Kommas trennen, z. B. Sun,MON,THU führt den Befehl nur sonntags und donnerstags montags aus.

Weitere Informationen finden Sie in Wikipedia-Artikel über Cron .

323
fedorqui
    :-) 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 erwähnt, sind die Nummern 0 Und 7 Beide dem Sonntag zugewiesen. Es sind auch die englisch 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 es trotzdem und führen jeden Freitag, Samstag und Sonntag um 9.15 Uhr einen Befehl aus.

im Detail

Wenn Sie zwei Nummern 0 Und 7 Für Sonntag haben, können Sie Wochentagsbereiche schreiben, die mit 0 Beginnen oder mit 7 Enden. Sie können also Bereiche schreiben, die mit Sonntag beginnen oder damit enden, wie zum Beispiel 0-2 Oder 5-7 (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.

98
Henrik

Sie können auch Tagesnamen wie Mon für Montag, Tue für Dienstag usw. verwenden. Es ist menschlicher.

7
Cyril Bouthors

Mit Spring:

  1. Dieser Job beginnt jeden Montag um 10.00 Uhr morgens :

    @Scheduled(cron = "0 0 10 * * MON")

  2. Dieser Job beginnt um 10.00 Uhr morgens am 1. eines jeden Monats

    @Scheduled(cron = "0 0 10 1 1/1 ?")

0
Taras Melnyk