Cron-Job-String-Einstellungen können zwischen 5-10 4-mal täglich ausgelöst werden

594
Arnab Ghosh

* 5-10 * * * wird das Skript zwischen den genannten Zeitpunkten auslösen, aber wie kontrolliere ich die Zählung?

Übrigens, die Anzahl und die Zeitangaben können beliebig sein, dh sie sind dynamisch und nicht statisch. Setzen Sie einfach statische Zahlen zum besseren Verständnis auf.

0

2 Antworten auf die Frage

2
cristi

Ein Problem mit Ihrem Skript ist, dass es jede Minute läuft (aufgrund des ersten "*").

Da Sie 6 Stunden haben, ist es ziemlich schwierig, den Cron nur viermal auszuführen.

Eine Lösung könnte sein:

0 6,7,8,9 * * * /path/command 
0
Ecnerwal

Sie bekommen nicht Cron. Es ist nicht "dynamisch" - es wird ausgeführt, wenn Sie es ohne Abweichung ausführen lassen.

Wenn Sie 4 Mal zwischen 5 und 10 wünschen, wählen Sie einfach 4 Mal aus und schreiben Sie 4 Zeilen. Es gibt keine Punkte, um "in einer Zeile fertig zu werden" und wenige, wenn überhaupt, um sie zu komprimieren.

dh:

17 5 * * * (command) 37 6 * * * (command) 17 8 * * * (command) 37 9 * * * (command) 

Oder möchten Sie vielleicht mehr wie:

1 5 * * * (command) 37 6 * * * (command) 17 8 * * * (command) 59 9 * * * (command) 

Oder wenn Sie die Verdichtung lieben (für die es immer noch wenige gibt, wenn Punkte vergeben werden):

17 5,8 * * * (command) 37 6,9 * * * (command) 

Es sei denn, Sie meinten tatsächlich von 5 bis 22 Uhr (in diesem Fall):

17 17,20 * * * (command) 37 18,21 * * * (command) 

Wenn Sie ein gewisses Bedürfnis (ich spiele dubios spielen) für dynamisches Verhalten hier haben, werden Sie ein Skript schreiben, um dynamisch eine Crontab zu erstellen, die nicht dynamisch das tut, was Sie möchten, bis Sie das nächste Mal die Crontab ändern.