it-swarm.com.de

Cron Scheduling: Liegt das Stundenargument im 24-Stunden-Format vor?

Muss ich 4 * * * * schreiben, um cron in der Nacht um 4 Uhr morgens auszuführen?

Und um 16 Uhr zu rennen, sollte es 16 * * * * sein?

10
aneuryzm

Nein. Dies würde zum 4. und 16. Minute jeder Stunde erfolgen.

Du schaust nach:

0 4,16 * * * command

Das läuft sowohl um 4 Uhr morgens als auch um 4 Uhr nachmittags.

Oder wenn die beiden Befehle unterschiedlich sind:

0 4 * * * command
0 16 * * * another_command
  1. In der ersten Spalte werden die Minuten eingestellt. In diesen Beispielen setze ich es auf 0, damit das Ereignis zur vollen Stunde stattfindet.

  2. In der nächsten Spalte stellen wir die Stunde ein, die ausgeführt werden soll. Wir verwenden absolute Werte, aber Sie können */2 für "jede zweite Stunde" usw. verwenden.

  3. In der nächsten Spalte heißt es, dass dies jeden Tag im Monat geschehen soll.

  4. Die nächste Spalte gibt die Monate an, für die dies ausgelöst werden soll (in diesem Fall alle).

  5. In der letzten Spalte steht, an welchen Wochentagen dies ausgelöst werden darf. 0-7 (wobei 0 und 7 Sonntag sind). * bedeutet, dass es an jedem Wochentag ausgelöst werden kann.

12
Oli

Nein, das stimmt nicht. Die Bedeutung der Felder

* * * * *

für jeden Sternchenschlitz:

  • minute (0 - 59)
  • stunde (0 - 23)
  • tag des Monats (1 - 31)
  • monat (1 - 12)
  • wochentag (0 - 6) (Sonntag = 0 oder 7)

Also für jeden Tag 4 Uhr und 4 Uhr sollten Sie verwenden:

0 4,16 * * *

Wenn Sie einen Slot wie * verlassen, bedeutet dies jede Iteration dieser Zeiteinheit, d. H. Jede Stunde, jeden Tag usw.

Hier bedeutet der Teil 0 4,16, dass er bei 0 Minuten von 4 Uhr morgens und 4 Uhr nachmittags (d. H. 4 Uhr morgens und 4 Uhr nachmittags) ausgeführt wird. Wenn Sie es ausführen möchten, lassen Sie es stattdessen 15 Minuten vor und 16 Uhr in 15 4,16 * * * ändern (d. H. 4:15 Uhr und 4:15 Uhr).

0
Arthur Knopper