Cron-Übersetzer:
was macht diese Zeile?
Fügen Sie eine Zeile direkt aus der crontab ein — nur die fünf Felder oder die ganze Zeile samt Befehl. Sie erhalten den Zeitplan als einen Satz in natürlicher Sprache, jedes Feld dekodiert und die nächsten zehn Termine, an denen der Job startet. Nichts wird irgendwohin gesendet: Die Auswertung läuft in Ihrem Browser.
Lesen Sie die Felder in dieser Reihenfolge
Geerbte crontab-Zeilen sind selten dokumentiert. Lesen Sie die fünf Felder in dieser Reihenfolge:
1 · Felder zählen
Fünf durch Leerzeichen getrennte Felder sind crontab. Sechs oder sieben bedeuten Quartz oder einen anderen Scheduler mit vorangestelltem Sekundenfeld — eine andere Sprache, die nur ähnlich aussieht. Alles nach dem fünften Feld ist der Befehl, nicht der Zeitplan.
5 = Cron · 6+ = kein Cron2 · Die letzten zwei zuerst
Tag des Monats und Wochentag entscheiden, an welchen Tagen der Job läuft. Stehen in beiden Feldern Zahlen, werden Sie hellhörig: Cron startet, sobald eines von beiden passt — die ODER-Regel und der klassische Lesefehler.
beide gesetzt → ODER, nicht UND3 · Dann die ersten zwei
Minute und Stunde sind die Uhrzeit an diesen Tagen. Ein Stern im Minutenfeld bedeutet 60 Läufe pro Stunde. Das Monatsfeld zählt nur, wenn dort kein Stern steht.
* in Minute = 60×/StundeWas jede Zeile in dieser crontab tut
Die Ausgabe von crontab -l auf einem fremden Server, Zeile für Zeile übersetzt. Übersetzen Sie eine beliebige davon — die Schaltfläche lädt sie oben in den Übersetzer. Ganze Zeilen gehen auch: Fügen Sie eine samt Befehl in das Feld ganz oben ein, dann nimmt der Übersetzer den Zeitplan und benennt den Teil, den er ignoriert hat.
*/5 * * * * /usr/local/bin/health-ping.sh
30 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
0 9 * * 1-5 /usr/local/bin/daily-digest.sh
0 6 1 * * /usr/local/bin/invoice-run.sh
Wie Sie jedes Cron-Symbol lesen
Jedes Symbol verdichtet mehrere Werte in ein Zeichen; wer es falsch auflöst, liest den Zeitplan im Review falsch:
- Schritte zählen ab dem Minimum des Feldes. */6 im Stundenfeld heißt 00, 06, 12, 18 — nicht »sechs Stunden nach dem letzten Lauf«.
- Zahlen in beiden Tagesfeldern bedeuten ODER, nicht UND. Cron startet, sobald eines von beiden passt — der Zeitplan trifft also öfter zu, als er aussieht.
- Namen und Kurzformen sind Dialekt. MON und @daily versteht diese Seite, und die meisten Crons ebenfalls — Zahlen sind die Schreibweise, die jeder Cron akzeptiert.
Die Symbole, zurückgelesen
wofür jedes Zeichen steht0 0 * * 0, @weekly und SUN
Alle vier Zeilen unten bedeuten Sonntag um Mitternacht. Der Übersetzer macht aus jeder davon denselben Satz und dieselbe Liste der nächsten Läufe.
Alltägliche Cron-Ausdrücke
Jeder ist bereits dekodiert und verlinkt auf seine eigene Seite — nächste Läufe, Varianten und die crontab-Zeile zum Kopieren. Die vollständige Sammlung liegt in der Bibliothek der Cron-Beispiele.
Die am häufigsten eingefügten Cron-Ausdrücke
Jede Minute jeder Stunde, jeden Tag — 1 440 Läufe am Tag, 525 600 im Jahr. Alle fünf Felder sind Platzhalter, also ist nichts eingeschränkt. Für einen billigen Health-Ping ist das der richtige Zeitplan, für fast alles andere der falsche. Steht so eine geerbte Zeile vor einem teuren Skript, ist sie die erste, die Sie hinterfragen sollten.
Jeder 5. Wert dieses Feldes, gezählt ab seinem Minimum. Im Minutenfeld startet */5 bei :00, :05, :10 … :55 — 12-mal pro Stunde, immer zu denselben Minutenwerten. Es bedeutet nicht »5 Minuten nach dem letzten Lauf«: Cron gleicht Uhrzeitwerte ab. */7 ergibt darum :00, :07 … :56 und dann wieder :00 — eine Lücke von 4 Minuten zu jeder vollen Stunde.
Jeden Tag um Mitternacht, Serverzeit — Minute 0 der Stunde 0, jedes Datum, jeder Monat, jeder Wochentag. Genau diesen Zeitplan kürzt @daily ab. Gemeint ist die Mitternacht des Servers; in den Umstellungsnächten auf Sommer- oder Winterzeit kann eine Maschine mit lokaler Zeit den Lauf überspringen oder doppelt ausführen.
Identisch. Die Kurzformen entsprechen exakt: @hourly = 0 * * * *, @daily und @midnight = 0 0 * * *, @weekly = 0 0 * * 0, @monthly = 0 0 1 * *, @yearly = 0 0 1 1 *. Aus der Reihe fällt @reboot — das ist überhaupt kein Zeitplan, es startet, sobald der Cron-Daemon hochfährt. Dieser Übersetzer schreibt die Kurzformen aus, sodass Sie immer die fünf Felder darunter sehen.
Weil er nicht aus einer crontab stammt. Quartz (Jenkins, Spring), manche Cloud-Scheduler und einige Cron-Bibliotheken stellen ein Sekundenfeld voran; damit sind es sechs — oder sieben mit angehängtem Jahr. Eine crontab installiert die Zeile nicht. Steht im Sekundenfeld eine 0, streichen Sie es; die übrigen fünf lesen sich meist als POSIX. Steht dort etwas anderes, feuert der Zeitplan öfter als einmal pro Minute — und das kann einfaches Cron überhaupt nicht ausdrücken.
Es ist Quartz für »kein bestimmter Wert«. Quartz verlangt, dass genau eines der beiden Tagesfelder ungenutzt bleibt, deshalb bekommt eines von ihnen ein Fragezeichen. POSIX-Cron kennt diese Regel nicht und kein ? — ein einfacher * genügt. Sind beide Tagesfelder tatsächlich eingeschränkt, läuft Cron an der Vereinigungsmenge der beiden. Fügen Sie ein ? in eine crontab ein, wird die Zeile abgewiesen.
Ja. Fügen Sie 30 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1 ein: Der Übersetzer nimmt die fünf Zeitplanfelder, übersetzt nur diese und benennt den Rest der Zeile als den Teil, den er ignoriert hat. Er liest auch die Form von /etc/crontab, bei der zwischen Zeitplan und Befehl ein Benutzername steht. Was er nicht tut: eine Zeile mit sechs Feldern erraten. Ein vorangestelltes Sekundenfeld bedeutet Quartz, nicht crontab, und das ist eine andere Sprache.
Fügen Sie den Ausdruck oben ein. Die Ergebnisansicht listet die nächsten zehn Läufe als konkrete Termine auf, berechnet von einem echten Parser in der Zeitzone Ihres Browsers. Die crontab selbst läuft nach der Uhr des Servers: Steht die Maschine auf UTC und Sie nicht, verschiebt sich die ganze Liste um Ihren Versatz. Nichts davon sagt Ihnen allerdings, ob ein Lauf erfolgreich war — Cron protokolliert nur, dass er gestartet ist.
Weiter erkunden
Gratis-Tools sind erst der Anfang.
Uptimia hält Ihre Websites am Laufen.
Verfügbarkeit, SSL, Domain-Ablauf, Ladezeit, Transaktionen – aus 171+ Standorten weltweit überwacht. 30 Tage kostenlos.