Erstellen Sie Cron-Jobs, die alle X Zeiteinheiten wiederholt werden, beginnend mit einer beliebigen Einheit

Erstellen Sie Cron-Jobs, die alle X Zeiteinheiten wiederholt werden, beginnend mit einer beliebigen Einheit

Ich habe einen Cron-Job auf CentOS, den ich alle 3 Minuten ausführen möchte, aber ich habe viele andere Cron-Jobs, die alle 3 Minuten ausgeführt werden, beginnend bei 0, 3, 6, 9 usw.

Um eine zu starke Überlastung meines Servers zu vermeiden, wollte ich, dass einige meiner Crons alle 3 Minuten, aber ab 1 Minute usw. ausgeführt werden: 1, 4, 7 ...

Meine Crons sind normalerweise so:

*/3 * * * * 

Wie kann ich das machen?

Antwort1

Die typischere und prägnantere Angabe ist „1-59/3“, was „alle 3 Minuten beginnend bei 1“ bedeutet.

Antwort2

Zusätzlich zu heemayls Antwort könnten Sie die gewünschten Minuten auflisten, obwohl dies weniger kompakt und wahrscheinlich fehleranfälliger ist als die vorhandene Methode:

1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * some_command

Antwort3

Sie können es sleep 60als ersten Befehl verwenden, sodass der Befehl, den Sie ausführen möchten, tatsächlich nach 1 Minute ausgeführt wird, während die cronZeit wie folgt eingehalten wird */3:

*/3 * * * * sleep 60 && some_command

verwandte Informationen