Deutsch

Entwicklertools · Crontab-Generator

crontab(5)-Felder: was POSIX angibt und was eine Vixie-Erweiterung ist

· Hintergrund

Cron Portabilität Validierung

Eine fünfspaltige Grammatikkarte mit akzeptierten Token und einer geschützten Grenze
Original-ToolAcre-Vektorillustration

Nicht jede Cron-Funktion ist Standard. Dieser Beitrag trennt die Anforderungen der POSIX-Crontab-Spezifikation von den Erweiterungen (Schritte, Namen, Spitznamen), die Vixie Cron hinzugefügt hat und die die meisten Linux-Systeme annehmen.

Ein gültiger ToolAcre-Ausdruck kann immer noch nicht von einem anderen Scheduler unterstützt werden

Ein Zeitplan, der ToolAcre durchläuft, hat diesen Parser erfüllt, nicht jede Cron-Implementierung. Portabilität beginnt mit dieser bescheidenen Aussage. Die Route akzeptiert genau fünf Felder und eine definierte Token-Grammatik. Eine Ziel-Appliance, ein Ziel-Dienst oder ein Ziel-Framework kann weniger, mehr oder etwas strukturell anderes akzeptieren.

Behalten Sie das Browserergebnis als einen Beweis bei: Ausdruck, Beschreibung, Warnungen und Vorschauzone. Vergleichen Sie vor der Bereitstellung die Zieldokumentation und führen Sie einen harmlosen Test durch. Die Validierung wird erst dann gefährlich, wenn ein lokales grünes Signal zu einer universellen Kompatibilitätsgarantie wird.

Das Repository stellt nicht fest, was POSIX erfordert

Die Arbeitsmappe trennte POSIX-Anforderungen von Erweiterungen, aber in den Repository-Quellen erscheint keine POSIX-Spezifikation. Das Verhalten von ToolAcre kann nicht nachweisen, welche Funktionen ein Standard erfordert. In diesem Abschnitt wird daher die implementierte Syntax beschrieben, ohne sie einem Standardisierungsgremium zuzuweisen.

Implementierte numerische Bereiche sind 0–59 Minuten, 0–23 Stunden, 1–31 Tage im Monat, 1–12 Monate und 0–7 Wochentage. Platzhalter, Einzelwerte, inklusive Bereiche, Kommalisten, Platzhalterschritte, Bereichsschritte und ein bloßer Startwert mit einem Schritt werden alle analysiert und getestet.

Namen, Schritte, Sonntag 7 und Aliase werden hier ohne Anspruch auf Standards-Historie implementiert

Bei den Monatsnamen JAN bis DEC und bei den Wochentagsnamen SUN bis SAT wird die Groß-/Kleinschreibung nicht beachtet. Namen können einzeln, in Listen und in Bereichen erscheinen. Der Wochentag 7 wird als Sonntag akzeptiert und auf 0 normalisiert. Dies sind beobachtbare Eigenschaften von `parseField`, unabhängig davon, wie eine andere Implementierung sie klassifiziert.

Die Aliastabelle erweitert `@yearly`, `@annually`, `@monthly`, `@weekly`, `@daily`, `@midnight` und `@hourly`. `@reboot` wird absichtlich abgelehnt, da es keinen Kalenderplan zur Vorschau gibt. Bei unbekannten At-Sign-Wörtern wird ein Fehler beim Benennen der unterstützten Liste angezeigt.

Die Unterstützung für Umgebungszuweisungen liegt außerhalb dieses Parsers

Umgebungszuweisungen sind nicht Teil dieser Ausdrucksgrammatik. Das Eingabefeld erwartet einen Zeitplan und `parseCron` teilt ihn in fünf Teile auf, nachdem ein unterstützter Alias ​​aufgelöst wurde. Eine `KEY=value`-Leitung kann über diese Route nicht auf Erweiterung, Quotierung oder Portabilität getestet werden.

Diese Auslassung verhindert die Behauptung falscher Standards. Eine vollständige Crontab-Datei kann Konstrukte enthalten, die ein reines Ausdruckstool niemals sieht. Vergleichen Sie diese separat mit dem Ziel. Die präzisen Feldfehler von ToolAcre sollten nicht als Urteile über nicht zusammenhängende Zeilen in einer größeren Datei verwendet werden.

Überprüfen Sie die Zielgrammatik und verwenden Sie einen harmlosen Zeitplantest

Die Zielüberprüfung sollte mit der Feldanzahl und den Operatoren beginnen. Bestätigen Sie, ob Namen, Sunday 7, Slash-Schritte und At-Sign-Aliase akzeptiert werden. Installieren Sie dann kurzfristig eine harmlose beobachtbare Aktion, entfernen Sie sie nach der Beweiserhebung und vergleichen Sie das Zielergebnis mit dem beabsichtigten Ausdruck.

Testen Sie die Portabilität nicht mit einem sensiblen Befehl oder indem Sie auf ein seltenes jährliches Datum warten. Wählen Sie die kleinste sichere Sonde, die die Grammatikunterstützung auszeichnet. ToolAcre kann dabei helfen, diesen Zeitplan zu erstellen und zu erklären, während die Zielausführung den Teil festlegt, den der Browser nicht kennen kann.

Arbeitsbeispiel: Schrittform und explizite Liste gemäß der Grammatik von ToolAcre

Alle fünf Minuten akzeptiert ToolAcre `*/5 * * * *`. Es akzeptiert auch die explizite Minutenliste `0,5,10,15,20,25,30,35,40,45,50,55 * * * *`. Beim Parsen werden beide Minutenfelder auf die gleichen zwölf Werte erweitert, sodass ihre Kandidaten für den nächsten Lauf unter demselben Startzeitpunkt und derselben Startzone übereinstimmen.

Die explizite Liste kann als Ersatzkandidat dienen, wenn einem Ziel die Schrittsyntax fehlt, dieses Repository die Listenunterstützung dieses Ziels jedoch nicht zertifizieren kann. Vergleichen Sie beide Formen in ToolAcre auf semantische Äquivalenz und überprüfen Sie dann, welche Form auch immer die Zieldokumente sind. Gleichwertigkeit ist hier kein Portabilitätsbeweis.

Sechs-Felder-Syntax wird abgelehnt; seine externe Semantik wird hier nicht dokumentiert

Ein sechstes Feld wird nicht akzeptiert. Der Fehler deutet darauf hin, dass ein Stil für führende Sekunden zu Quartz oder systemd-ähnlichen Eingaben gehört, der Parser diese Grammatiken jedoch nicht implementiert. Es gibt kein Jahresfeld und keine Operatoren `?`, `L`, `W` oder `#`.

Felder zählen, bevor eine Übersetzung versucht wird. Wenn eine nicht unterstützte Syntax eine Planungsbedeutung hat, kann ein offensichtliches Umschreiben von fünf Feldern verlustbehaftet sein. Verwenden Sie Dokumentation und Tests für den Quellplaner und drücken Sie dann nur Anforderungen aus, die durch die Zielgrammatik von ToolAcre darstellbar sind. Alles andere sollte eine explizite Inkompatibilität bleiben.

Takeaway: Wissen Sie, welche Funktionen Erweiterungen sind – und verwenden Sie den Generator, um beide Formulare zu erstellen und zu überprüfen, wenn Portabilität wichtig ist

Portabilität ist ein Vergleich, keine in einen Ausdruck eingebettete Bezeichnung. ToolAcre bietet eine gut getestete Seite: fünf Positionen, numerische Grenzen, ausgewählte Namen, zusammensetzbare Bereiche/lists/steps und sieben Aliase. Es gibt auch klare Ablehnungen für fehlerhafte oder fremde Formulare.

Verwenden Sie diesen Vertrag, um präzise zu argumentieren, und überprüfen Sie dann die andere Seite. Eine explizite Liste und ein Schritt können in diesem Parser gleich sein, während anderswo nur einer funktioniert. Die Meldung der Dialektgrenze ist umsetzbarer als die Berufung auf einen Standard, auf den der Artikel eigentlich nicht zurückgreift.