
Ich habe eine Reihe von Geräten, auf denen alle einen ähnlichen Cron-Job ausführen. Derzeit stelle ich die Cron-Minuten und -Stunden auf eine Zufallszahl ein (so werden sie nicht alle gleichzeitig ausgeführt).
$random_minute $random_hour * * * sudo /bin/script
Ich möchte dieses Muster beibehalten, bei dem jedes Gerät zufällig ausgewählt wird, aber ich habe auch ein Skript, das alle 6 Stunden ausgeführt werden muss. Wie kann ich etwas wie oben mit kombinieren */6
?
Antwort1
Der Tag hat nicht so viele Stunden, also warum nicht einfach
17 3,9,15,21 * * * sudo /bin/script
um 03:17 Uhr und von da an alle 6 Stunden laufen?
Die Alternativen würden das Hinzufügen einer Sleep-Funktion zum Programm selbst beinhalten:
0 */6 * * * (sleep 11820; sudo /bin/script)
oder führen Sie das Skript häufiger aus (z. B. stündlich) und lassen Sie es nur beenden, wenn der eigentliche Job innerhalb der letzten < 6 Stunden ausgeführt wurde.
Antwort2
Bei einigen cron
Implementierungen können Sie Folgendes verwenden:
17 3-23/6 * * * * some command