Die Angabe „alle ungeraden Werte“ in crontab?
Frage
In crontab kann ich einen Stern jeden Wert bedeuten, oder „* / 2“ jeden geraden Wert bedeuten.
Gibt es eine Möglichkeit jeden ungerade Wert angeben? (Würde so etwas wie "1 + * / 2" Arbeit?)
Lösung
auf Ihrer Version von cron Je sollten Sie in der Lage sein zu tun (für Stunden, sagen):
1-23/2
Going durch die ERWEITERUNGEN Abschnitt in der crontab (5) manpage:
Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9".
Für eine tragbare Lösung, ich vermute, Sie müssen nur die einfache Liste verwenden:
1,3,5,7,9,11,13,15,17,19,21,23
Aber es könnte leichter sein, Ihren Befehl in einem Shell-Skript zu wickeln, das wird sofort verlassen, wenn sie nicht in einer ungeraden Minute aufgerufen wird.
Andere Tipps
Jede ungerade Minute wäre:
1-59/2 * * * *
Jede sogar Minute wäre:
0-58/2 * * * *
Versuchen
1-23/2
Aus Ihrer Frage, ich gehe davon aus Vixie Cron. Ich bezweifle, dass dies bei jedem anderen cron funktioniert.
Als ich das Handbuch lesen "1-23 / 2" (stundenlang) würde den Trick tun.
Arbeiten auf Cronie Selbst mit 5 Minuten Intervall z.
3-58/5 * * * * /home/test/bin/do_some_thing_every_five_minute
Ich weiß, das fast 10 Jahre alt ist, aber ich habe Probleme bekommen 1-23 / 2 für einen jeweils zwei Stunden, ungeradeen Stunden-Job.
Für alle Benutzer, wo, genau ungerade Stunde Präzision ist nicht erforderlich. Ich habe folgende, die benötigt meine Teams geeignet.
59 */2 * * *
Führen Sie den Job alle zwei Stunden, in der 59. Minute.