Deutsch

Entwicklertools · Crontab-Generator

So funktionieren die fünf Crontab-Felder: Minute, Stunde, Tag, Monat, Wochentag

· Wie es funktioniert

Cron Terminplanung Entwickler-Workflow

Fünf Positionen eines Cron-Zeitplans, ausgerichtet an Uhr- und Kalendersymbolen
Originale ToolAcre-Vektorillustration

Jeder Cron-Zeitplan besteht aus fünf Positionsfeldern, und die Reihenfolge ändert sich nie. In diesem Beitrag wird der Bereich der einzelnen Felder, der Sonderfall Sonntag und die Art und Weise erläutert, wie aus einer Zeile eine Reihe passender Minuten wird.

Ein Backup, das jede Nacht um 02:30 Uhr ausgeführt werden muss – und fünf Sterne, von denen Sie nicht wissen, wie Sie sie füllen sollen

Sie benötigen jeden Abend um 02:30 Uhr ein Backup, verwechseln aber ständig, welcher der fünf Sterne die Stunde besitzt. Cron ist positionell: Eine Zahl in der falschen Spalte erzeugt einen anderen Zeitplan, sieht aber oberflächlich betrachtet gültig aus. Beginnen Sie mit der Zeit, zu der der Job ausgeführt werden muss, der Zeitzone des Computers und dem Eigentümer der Crontab. erst dann Felder ausfüllen. ToolAcre kann einen Ausdruck analysieren und beschreiben, aber es installiert den Job nicht und führt Ihren Sicherungsbefehl nicht aus.

Positionsfelder, feste Reihenfolge – Minute, Stunde, Tag des Monats, Monat, Wochentag, dann der Befehl

Eine Benutzer-Crontab-Zeile enthält Minute, Stunde, Tag des Monats, Monat, Wochentag und dann einen Befehl. In 30 2 * * * backup.sh ist 30 die Minute und 2 die Stunde: 02:30 jeden Tag in der Zeitzone dieser Cron-Umgebung. Der Befehl ist kein sechstes Zeitfeld. Systemweit kann /etc/crontab ein Benutzerfeld vor dem Befehl enthalten, weshalb das blinde Kopieren eines Systemeintrags in Ihre persönliche Crontab dazu führen kann, dass ein unbeabsichtigter Befehl ausgeführt wird.

Bereiche jedes Feldes – 0–59, 0–23, 1–31, 1–12 und 0–7, wobei 0 und 7 in den meisten Crons beide Sonntag bedeuten

Minuten akzeptieren 0–59, Stunden 0–23, Tag des Monats 1–31, Monat 1–12 und Wochentag 0–7 in den ToolAcre-Modellen im Vixie-Stil; 0 und 7 bedeuten Sonntag. Ein Sternchen bedeutet alle Werte in diesem Feld. Bereiche und durch Kommas getrennte Listen können Werte einschränken, der numerische Bereich eines Feldes gilt jedoch weiterhin. 25 an der Stundenposition ist kein Late-Night-Zeitplan: Er ist ungültig und sollte gemeldet und nicht auf den nächsten Tag verschoben werden.

So funktioniert der Abgleich: cron wacht jede Minute auf und führt eine Zeile aus, wenn die Zeitfelder übereinstimmen (mit einer Ausnahme für die beiden Tagesfelder).

Cron prüft jede Minute übereinstimmende Felder. Minute, Stunde und Monat müssen alle übereinstimmen. Für die beiden Tagesfelder gilt in Vixie Cron eine Sonderregel: Wenn sowohl der Monatstag als auch der Wochentag eingeschränkt sind, kann eine Übereinstimmung bei einem der beiden Felder den Job auslösen, nicht unbedingt bei beiden. Somit bedeutet 0 0 13 * 5 den Dreizehnten eines Monats oder jeden Freitag, nicht nur Freitag, den Dreizehnten. Mit Platzhaltern an den Tagespositionen verhält sich das Nachtbeispiel wie beabsichtigt. Die erklärende Ausgabe des Tools macht diese Auswahl vor der Installation sichtbar.

Arbeitsbeispiel: 30 2 * * * backup.sh – laut vorlesen und dann „Wochentage um 08:15“ von Grund auf schreiben

Lesen Sie 30 2 * * * backup.sh laut als „führen Sie backup.sh jeden Tag um 02:30 Uhr aus.“ Geben Sie für Wochentage um 08:15 Minute 15, Stunde 8, uneingeschränkten Tag/Monat und Wochentage 1–5 ein: 15 8 * * 1-5. Fügen Sie nur die fünf Zeitplanfelder in den Crontab-Generator ein und überprüfen Sie dessen Beschreibung und Liste der nächsten Ausführungen. Installieren Sie den Befehl anschließend mit Ihrem eigenen Crontab-Editor. Überprüfen Sie bei einer Sicherung, die in der Nähe einer Zeitumstellung auf Sommerzeit ausgeführt wird, die Zeitstempel der nächsten Ausführung in der tatsächlichen Zone, anstatt davon auszugehen, dass jede lokale 02:30 vorhanden ist.

Namen für Monate und Wochentage, einschließlich unterstützter Namensbereiche

Viele Cron-Dialekte akzeptieren Namen aus drei Buchstaben wie JAN oder MON anstelle von Zahlen. Namen können einen von Menschen verwalteten Zeitplan klarer machen, aber die Verwendung von 0/7 für Sonntag bleibt üblich und andere Cron-Implementierungen können andere Erweiterungen haben. ToolAcre erkennt gängige Monats- und Wochentagsnamen und -bereiche wie JAN-MAR und MON-FRI; Sein Parser akzeptiert 15 8 * JAN-MAR MON-FR. Eine andere Cron-Implementierung oder ein anderer Cloud-Scheduler verwendet möglicherweise eine andere Anzahl von Feldern oder Erweiterungen. Konsultieren Sie daher die Grammatik dieser Umgebung, bevor Sie die Zeile installieren.

Was diese Übersicht nicht vollständig abdeckt: Listen, Schritte und die Ausführungsumgebung

In dieser Einführung wird die Tagesfeld-OR-Regel von Vixie erläutert, jedoch nicht ihre komplizierten Kombinationen mit Listen und Schritten, der Shell/Umgebung, die den Befehl ausführt, oder dem Sommerzeitverhalten untersucht. Jeder kann ändern, ob eine echte Aufgabe ausgeführt wird. Der Validator kann einen Zeitplan beschreiben, aber nicht garantieren, dass backup.sh vorhanden ist, über die Berechtigung verfügt oder wiederherstellbare Sicherungen geschrieben hat. Testen Sie ein Backup und eine Wiederherstellung, bevor Sie sich auf einen Produktions-Cron-Eintrag verlassen.

Fazit: Fünf Felder, eine Grammatik – und der Crontab-Generator erstellt den Ausdruck und erklärt ihn Ihnen

Fünf Positionen bilden eine Grammatik. Der Crontab-Generator liest Ihren vorgeschlagenen Zeitplan, benennt jedes Feld und zeigt bevorstehende Ausführungen in einer ausgewählten Zone an, ohne dass etwas auf Ihrem System installiert werden muss. Geben Sie die Nacht- und Wochentagsbeispiele ein, vergleichen Sie die Angaben des Tools mit Ihren Absichten und bewahren Sie dann die Befehls- und Zeitzonenentscheidung zusammen mit der Betriebsdokumentation des Auftrags auf.