2012-11-02 3 views
5

Gibt es eine Möglichkeit, den Cron-Ausdruck so zu gestalten, dass er alle 70 Minuten oder 210 Minuten, d. H.> 60 Minuten, ausgeführt wird. Ich habe versucht, danach zu suchen, konnte das aber nicht finden.Cron-Ausdruck für jeden> 60-Minuten-Job

Ich ging schließlich mit einem Wrapper-Skript, das die erforderliche Zeit überprüfen würde, die alle 5 Minuten (oder die optimale wiederkehrende Zeit) aufgerufen wurde.

Wie eine solche Aufgabe in Cron-Ausdruck zu erreichen?

+0

Nun, so dass es ausführen, nachdem eine festgelegte Menge an Stunden möglich ist, aber so etwas wie 70 Minuten? Ich denke nicht. – TheZ

+0

Sie können vielleicht 'at' verwenden. – fedorqui

+0

mögliche Duplikate von [Wie kann ich cron festlegen, um alle eineinhalb Stunden bestimmte Befehle auszuführen?] (Http://stackoverflow.com/questions/247626/how-can-i-set-cron-to-run-certain -Befehle-alle-anderthalb Stunden) – sendmoreinfo

Antwort

0

Grundsätzlich müssen Sie Ihre Cron jede Minute auszuführen:

* * * * * 

und lassen Sie Ihr Skript vor, wenn seine letzten Ausführung stammt aus 70 oder 210 Minuten bestimmen.
Wenn dies der Fall ist, würde es mit dem Rest des Skripts weitergehen.
Wenn nicht, würde es sofort beendet werden.

Mit anderen Worten, versuchen Sie nicht, alles in den Cron-Ausdruck zu setzen.

Wie kommentiert von Keith Thompson, könnten Sie stattdessen das Skript laufen weniger häufig (0 0/5 0? * * *), Mit einem Test bei 70 Minuten oder alle 30 Minuten (0 0/30 0 ? * * *) mit einem Test bei 210 Minuten.

+0

Nein, das wird nach 0 und 35 Minuten nach jeder Stunde ausgeführt. –

+0

@KeithThompson Richtig. Fest. – VonC

+0

Das ist ein Weg, es zu tun, aber für einen Zeitraum von 70 Minuten kann der Cron-Job nur einmal alle 10 Minuten und 210 Minuten lang alle 30 Minuten ausgeführt werden. –

0

fahren alle 70 Minuten

* */1.1666 

oder

fahren alle 210 Minuten

* */3.5