webentwicklung-frage-antwort-db.com.de

führen Sie Crontab zweimal täglich um 00h und 13.30 Uhr aus

ich möchte ein Skript zweimal täglich um 00:00 und 13:30 ausführen, deshalb schreibe ich:

0,30 0,13 * * *

es scheint mir falsch zu sein, denn so wird das Skript um 00:00, 00:30, 13:00 und 13:30 ausgelöst. Irgendeine Idee ?

20
Wassim Sboui

Warum nicht zwei Cron-Einträge einfügen? Eins für 00:00 und eins für 13:30? Ich glaube nicht, dass Sie mit einem Eintrag machen können, was Sie möchten, da die beiden Minutendefinitionen für beide Stundendefinitionen gelten (wie Sie sie identifiziert haben).

Die Alternative ist vielleicht, ein Skript um 00:00 Uhr auszuführen. Dieses Skript führt das ursprüngliche Skript aus, wartet dann 13,5 Stunden und führt es dann erneut aus. Das wäre mit einem einfachen Schlafbefehl einfach zu bewerkstelligen, aber ich denke, es ist nicht intuitiv , und ich bin nicht sicher, wie cron solche lang laufenden Prozesse verwaltet (was passiert, wenn Sie die crontab bearbeiten - tötet dadurch einen erzeugten Job usw.)

20
Brian Agnew

Versuchen Sie Folgendes: 00 01,13 * * * 

es läuft um 1 uhr und 1 uhr

46
Ankush

Sie können das nicht mit cron in einer einzelnen Zeile machen. Sie müssen zwei separate Zeilen erstellen, wie folgt:

# Will run "YourCommand" at 00:00
0   0   *   *   *   YourCommand
# Will run "YourCommand" at 13:30
30  13  *   *   *   YourCommand

Oder als einzelne Zeile können Sie alle x Stunden einen Befehl ausführen:

# Will run "YourCommand" every 12 hours
0   */12   *   *   *   YourCommand
6
Angel115

versuchen ...

00,30 00,13 * * * [ `date +%H%M` == 1330 ] || [ `date +%H%M` == 0000 ] && logger "its time"
2
Red Cricket

30 0,13 * * * somecommand.sh

Dies ist nur ein Beispiel, aber Sie werden sehen, dass es sich um einen cron-Eintrag handelt, der um 0:30 Uhr und dann um 13:30 Uhr ausgeführt wird (13 ist 1 in der Militärzeit). Trennen Sie einfach die Stunden durch Kommas oder trennen Sie den Teil des Cron.

0
David Jeffery