Deutsch

Entwicklertools · Crontab-Generator

Beispiele für Cron-Ausdrücke: stündlich, nächtlich, wochentags, erster des Monats

· Wie es funktioniert

Cron Beispiele Planung

Mehrere Zeitplankarten mit fünf Feldern, angeordnet neben Uhr- und Kalendermarkierungen
Original-ToolAcre-Vektorillustration

Zehn Zeitpläne decken die meisten echten Crontabs ab. In diesem Beitrag werden die Ausdrücke für jedes Feld erläutert, die Felder erläutert und auf das Feld hingewiesen, bei dem sich die Leute fast immer irren.

Sie benötigen „Erster des Monats um 06:00“ und die Suchergebnisse stimmen nicht überein – eine Reihe verifizierter Ausdrücke mit Begründung

Eine kopierte Antwort für „Erster des Monats um 06:00“ ist nur dann sinnvoll, wenn jede Position begründet werden kann. In der Fünf-Felder-Reihenfolge bedeutet `0 6 1 * *` Minute Null, Stunde Sechs, Tag des Monats Eins, jeden Monat und jeden Wochentag. Durch das Lesen der Felder wird verhindert, dass aus einem attraktiven Beispiel eine ungeklärte Produktionsabhängigkeit wird.

Die Beispiele hier bleiben innerhalb der Grammatik, die durch den Parser und die Tests von ToolAcre trainiert wird. Es handelt sich um Zeitplanfragmente, nicht um vollständige Jobdefinitionen. Der Browser kann sie beschreiben und zukünftige Wall-Clock-Kandidaten in einer ausgewählten Zone anzeigen, kennt jedoch nicht den Befehl, die Berechtigungen oder den Host, der sie letztendlich verwenden könnte.

Jede Minute, alle 5 Minuten, jede Stunde – * * * * *, */5 * * * * und 0 * * * * und warum der führende 0 wichtig ist

`* * * * *` wählt jeden Minutenwert jeder Stunde und jedes Datums aus. `*/5 * * * *` schränkt die Minuten auf 0, 5, 10 usw. bis 55 ein. `0 * * * *` wählt nur die Minute Null aus und erzeugt zu jeder vollen Stunde einen Kandidaten. Die führende Null ist also die Differenz zwischen sechzig Minutenpositionen und einer.

Alle drei Formen erscheinen entweder in voreingestellter oder getesteter Syntax. Ein Schritt erweitert die Untergrenze des Minutenfelds, während ein Platzhalter jeden zulässigen Wert von 0 bis 59 erweitert. Nutzen Sie die Vorschau, um Läufe genau nachzuprüfen; Schließen Sie nicht aus der bloßen Aufzählung von Zeiten ab, dass das Tool einen wiederkehrenden Prozess gestartet hat.

Täglich und zweimal täglich – 30 2 * * * und 0 6,18 * * *

Täglich um 02:30 ist `30 2 * * *`: Minute 30 und Stunde 2 mit uneingeschränkten Kalenderfeldern. Zweimal täglich um 06:00 und 18:00 ist `0 6,18 * * *`; Das Komma kombiniert zwei Stundenwerte, während die Minute fest bleibt. Beides ist einfacher zu überprüfen, wenn die Stundenliste explizit ist und nicht in zwei Zeilen dupliziert wird.

Eine ausgewählte Zeitzone ändert die für dieselben Wanduhrfelder angezeigten Zeitpunkte. ToolAcre berechnet jeden Kandidaten als lokale Wandzeit in dieser Zone und lässt eine lokale Zeit aus, die während einer Vorwärtszeitumstellung nicht existiert. Dieses Vorschauverhalten gehört zu diesem Tool. Der Artikel verallgemeinert es nicht zu einem Versprechen für jeden Daemon.

Wochentage und Wochenenden – 0 8 * * 1-5 und 0 10 * * 0,6, mit der Einschränkung der Sonntagsnummerierung

Die Wochentage bei 08:00 sind `0 8 * * 1-5` und die Wochenendvormittage bei 10:00 sind `0 10 * * 0,6`. Dieser Parser akzeptiert Sunday entweder als 0 oder 7 und normalisiert beide auf denselben Wert. Namen werden ebenfalls unterstützt, sodass `MON-FRI` `1-5` ersetzen kann, ohne die erweiterten Wochentage zu ändern.

Vermeiden Sie es, gleichzeitig den Tag des Monats festzulegen, es sei denn, eine ODER-Verknüpfung ist erwünscht. `0 8 1 * 1-5` bedeutet nicht nur Wochentage am ersten. Es umfasst den Ersten eines jeden Monats sowie jeden Wochentag. Der Generator warnt, wenn beide Tagesfelder eingeschränkt sind, und fügt „oder“ in den resultierenden Satz ein.

Monatlich, vierteljährlich und jährlich – 0 6 1 * *, 0 6 1 1,4,7,10 * und 0 0 1 1 *

Monatlich um 06:00 am ersten Tag ist `0 6 1 * *`. Vierteljährlich am ersten Tag im Januar, April, Juli und Oktober ist `0 6 1 1,4,7,10 *`. Ein jährlicher Mitternachtslauf am 1 im Januar ist `0 0 1 1 *`, was auch die Erweiterung ist, die von den unterstützten Aliasen `@yearly` und `@annually` verwendet wird.

In diesen Beispielen wird ein Tag verwendet, der in jedem ausgewählten Monat vorhanden ist. ToolAcre akzeptiert unmögliche Kombinationen als syntaktisch zulässig, warnt jedoch, wenn beispielsweise der Tag 30 nur mit Februar gepaart ist. Februar 29 erhält eine Schaltjahrwarnung. Die Kalendergültigkeit wird daher getrennt von der Feldgrammatik angezeigt und nicht hinter einer generischen ungültigen Nachricht verborgen.

Die Planung für den letzten Tag ist mit den unterstützten Fünf-Felder-Operatoren nicht ausdrückbar

Die unterstützte Grammatik hat keinen Last-Day-Operator. `L` wird abgelehnt und nicht übersetzt, und der Tag 31 deckt Monate mit dreißig Tagen oder Februar nicht ab. In der Arbeitsmappe wurde ein befehlsseitiger Datumstest vorgeschlagen, aber dieses Repository führt keine Befehle aus oder überprüft sie nicht, sodass dieser Workaround im Artikel nicht als unterstützte Generatorfunktion vorgestellt wird.

Behandeln Sie „letzten Tag jedes Monats“ als eine Anforderung, die über diese Ausdruckssprache hinausgeht. Wählen Sie einen vom tatsächlichen Ziel dokumentierten Planer oder eine Befehlsstrategie aus und testen Sie sie dort. ToolAcre bleibt für die normalen fünf Felder rund um diese Entscheidung nützlich, aber eine erfolgreiche Validierung kann keinen Operator erzeugen, den sein Parser nicht implementiert.

Sekundenfelder und Fremdoperatoren werden von diesem Parser abgelehnt

Klassische Ausdrücke in dieser Route haben keine Sekunden- oder Jahresposition. Sechs Felder werden mit Anleitung zu einem sekundenorientierten Zeitplanerstil abgelehnt. Der Parser lehnt außerdem `?`, `#`, `L` und `W` ab, da sein Wertleser nur Zahlen, unterstützte dreibuchstabige Namen, Bereiche, Kommas, Schrägstriche und Platzhalter akzeptiert.

Eine Unterminutenvorgabe kann daher hier nicht dargestellt werden. Auch ein Ausdruck eines anderen Schedulers kann nicht nur deshalb als gleichwertig erklärt werden, weil er ähnlich aussieht. Zählen Sie Positionen, überprüfen Sie die Operatorunterstützung und erstellen Sie den beabsichtigten Satz mit der Zielgrammatik neu. Ausgelassene Semantik sollte eine explizite Lücke bleiben und keine zufällige Annäherung.

Takeaway: Bauen Sie aus diesen zehn auf – und verwenden Sie den Crontab-Generator, um einen anzupassen und das Ergebnis zurückzulesen

Gängige Zeitpläne werden sicherer, wenn jedes Token einen Grund hat: Null legt eine Grenze fest, ein Komma benennt Alternativen, ein Bereich umfasst beide Enden und ein Stern öffnet das Feld. Die Voreinstellungen bieten mehrere Ausgangspunkte, darunter Minuten-, Viertelstunden-, Stunden-, Tages-, Wochentags-, Sonntags-, Monats- und Jahresformen.

Passen Sie die nächstgelegene Voreinstellung an, lesen Sie den generierten Satz und scannen Sie die nächsten fünf Mal im vorgesehenen Bereich der Maschine. Diese Sequenz überprüft die Ausdrucksabsicht und sorgt gleichzeitig dafür, dass die Bereitstellung außerhalb des Browsers erfolgt. Ein gutes Beispiel ist nicht nur kopierfertig; Es ist klein genug, dass ein anderer Prüfer rekonstruieren kann, warum jedes Feld vorhanden ist.