Zeigt alle Zeiten an, zu denen ein Cronjob läuft

Ok, ich kann um 17:30 Uhr einen Cronjob definieren

30 17 * * * /path/to/command

oder alle 15 Minuten

*/15 * * * * /path/to/command

oder um 5 nach, 34 nach und 41 nach

5,34,41 * * * * /path/to/command

oder bei

*/14 3,7 */6 2-11 1,7 /path/to/command

das ist alle 14 Minuten um 3 Uhr und 7 Uhr an jedem Tag, der durch 6 teilbar ist, nicht im Januar und nicht im Dezember und oder oder wenn es Montag oder Sonntag ist? Oder vielleicht ist es illegal, weil Sonntag war 0und nicht 7?

Ich suche eine Software, die

  • nimmt eine Crontab-Zeile als Eingabe
  • überprüft, ob es gültig ist oder nicht
  • falls gültig, listet fortan die nächsten Ausführungszeiten auf
  • auf einen vom Benutzer definierbaren Betrag begrenzt

Z.B

program -n 10 30 17 * * *

erzeugt 10 Ausgabezeilen (angenommen, heute ist der 22.10.2015)

2015-10-23 17:30
2015-10-24 17:30
2015-10-25 17:30
2015-10-26 17:30
2015-10-27 17:30
2015-10-28 17:30
2015-10-29 17:30
2015-10-30 17:30
2015-10-31 17:30
2015-11-01 17:30

Andere Vorraussetzungen:

  • kostenlos / Open Source, ich schätze, ich würde sogar 20 $ dafür bezahlen
  • jedes Betriebssystem (Debian/Ubuntu sind in Ordnung, aber auch Windows wäre ok)

Antworten (2)

Eine weitere Option, die Sie untersuchen können, wenn Sie sich ein wenig mit Programmierung auskennen, ist die Verwendung der Java-Bibliothek cron-utils , die Folgendes über sich selbst von github zu sagen hat:

cron-utils zielt darauf ab, Dienstprogramme bereitzustellen, die in allen Java-Cron-Bibliotheken verwendet werden können, sowie die Interoperation mit Zeitbibliotheken wie JodaTime bereitzustellen

Die aktuelle Version ermöglicht dies

  • Cron-Ausdrücke als Objekte ausdrücken
  • Ausdrücke analysieren
  • beschreiben und validieren sie
  • Letzte und nächste Ausführungszeit finden

Es hat unter anderem eine Methode nextExecutionTime(), die berechnet, wann ein Cron-Job das nächste Mal ausgeführt wird. Diese Methode ist in der Datei model/time/ExecutionTime.java definiert.

http://cron-parser.com/ ist die Hauptwebseite dieser Bibliothek, und die Funktionsliste dieser Seite lautet wie folgt:

Merkmale

  • Erstellen Sie beliebige Cron-Ausdrücke: Sie können Ihr eigenes Cron-Format definieren! Unterstützte Felder sind: Sekunde, Minute, Stunde, Tag des Monats, Monat, Wochentag, Jahr.
  • Sie können das letzte Feld als optional kennzeichnen!
  • Unterstützt alle Cron-Sonderzeichen: * / , -
    • Nicht standardmäßige Zeichen L, W, # werden ebenfalls unterstützt!
    • Fragezeichen (?) wird derzeit durch ein Sternchen (*) ersetzt. Eine erweiterte Unterstützung wird in Zukunft bereitgestellt.
  • Drucken Sie in einem ortsspezifischen, menschenlesbaren Format (bisher Englisch, Niederländisch, Französisch, Italienisch, Portugiesisch und Spanisch ...).
  • Parse- und Beschreibungsprozess sind entkoppelt: einmal parsen und mit dem Ergebnis operieren!
  • Validieren Sie mit CronValidator, ob Cron-String-Ausdrücke mit einer Cron-Definition übereinstimmen
  • Konvertieren Sie Crons zwischen verschiedenen Cron-Definitionen: Wenn Sie Ausdrücke migrieren müssen, kann CronMapper Ihnen helfen!

Es gibt einen webbasierten Übersetzer der Cron-Ausdrücke. Sie können Javascript auf dieser Seite translate.js verwenden, es ein wenig modifizieren und selbst verwenden.

Außerdem gibt es hier bereits eine ähnliche Frage zum Stapelüberlauf . Ich muss hier nicht alles kopieren, da es sich im selben Web befindet.

Ich hoffe es hilft.

Der Übersetzer scheitert bereits an */15 * * * *.
Das indirekt verlinkte cronwtf.github.io klärt nicht, ob die Wochentage und oder oder sind .
Für cronwtf.github.io bin ich auch nicht damit einverstanden * * * 2-11 *, von März bis Dezember zurückzukehren. unix.com/man-page/linux/5/crontab sagt, dass die Zahlen 1 bis 12 sind, nicht 0 bis 11.