tooloora

Cron stündlich – 0 * * * * erklärt

Der klassische Stundenauftrag: Minute 0 jeder Stunde, gleichbedeutend mit @hourly – und warum Minute 0 die vollste Minute jedes Servers ist.

Läuft lokal – nichts wird hochgeladen

Beispiele

Im Klartext

Jede Stunde zur Minute 0, jeden Tag.

Feld für Feld

  • 0Minute

    zur Minute 0

    Trifft: 0

  • *Stunde

    jede Stunde

    Trifft: 0, 1, 2, 3, 4, 5 … 23

  • *Tag im Monat

    an jedem Tag des Monats

    Trifft: 1, 2, 3, 4, 5, 6 … 31

  • *Monat

    in jedem Monat

    Trifft: Jan, Feb, Mär, Apr, Mai, Jun … Dez

  • *Wochentag

    an jedem Wochentag

    Trifft: So, Mo, Di, Mi, Do, Fr, Sa

Nächste Ausführungen

Termine werden berechnet …

Diese Termine gelten in der Zeitzone, die auf dem Server eingestellt ist. Cron rechnet nichts um; die Vorschau hier nutzt die Uhr deines Geräts.

Der Ausdruck bleibt in deinem Browser – er wird nie an einen Server gesendet.

Weitere Ausdrücke

0 * * * * lässt den Auftrag einmal pro Stunde laufen, jeweils zur Minute 0, also 24-mal am Tag. Das erste Feld legt die Minute fest, der Stern im Stundenfeld bedeutet jede Stunde. Die Kurzform @hourly steht für genau diese Zeile, beide sind in jeder Crontab austauschbar.

Warum ist Minute 0 ein schlechter Platz?

Weil dort schon alles andere ist. Log-Rotation, Sicherungs-Agenten, Überwachungs-Exporter und jeder weitere Stundenauftrag der Maschine feuern im selben Moment, und eine gemeinsame Datenbank oder Schnittstelle sieht die ganze Herde auf einmal ankommen. Ein Wechsel auf 17 * * * * kostet nichts, verteilt die Last und macht aus einer rätselhaften Latenzspitze zur vollen Stunde oft eine gerade Linie.

Was unterscheidet 0 * * * * von @hourly?

Im Verhalten nichts: Die Kurzform wird beim Einlesen der Crontab in genau dieselben fünf Felder übersetzt. Die ausgeschriebene Form ist in gemeinsam genutzten Dateien angenehmer, weil man sie später zu etwas anderem umbauen kann und weil jeder Leser sofort sieht, welche Minute der Auftrag belegt. Nur @reboot hat keine Entsprechung in fünf Feldern.

Wie laufe ich alle zwei oder drei Stunden?

Setze die Schrittweite ins Stunden-, nicht ins Minutenfeld: 0 */2 * * * läuft um 0:00, 2:00, 4:00 und so weiter. Weil 24 durch 2, 3, 4, 6, 8 und 12 teilbar ist, bleiben diese Schritte über Mitternacht hinweg gleichmäßig; 0 */5 * * * dagegen springt von 20:00 direkt auf die nächste 0:00.

So trägst du den Ausdruck ein

  1. Eine Minute wählen, die nicht 0 ist – 7, 17 oder 23 sind auf einer belebten Maschine gute Werte.
  2. Die Zeile eintragen, etwa 17 * * * * /pfad/zum/skript.sh, und die Crontab speichern.
  3. Sicherstellen, dass der Auftrag deutlich innerhalb einer Stunde fertig wird, sonst eine Sperre ergänzen.
  4. Oben im Erklärer gegenprüfen, ob der Plan so gelesen wird, wie du ihn gemeint hast.

Häufige Fragen

Läuft 0 * * * * auch um Mitternacht?

Ja. Das Stundenfeld ist ein Stern, also ist die Stunde 0 eingeschlossen und der Auftrag läuft um 0:00 wie in jeder anderen Stunde. Wer die Nacht auslassen will, schränkt die Stunden ein, etwa mit 0 6-22 * * *.

Warum lief mein Stundenauftrag in einer Nacht zweimal?

Mit hoher Wahrscheinlichkeit wegen der Zeitumstellung im Herbst, wenn die lokale Uhr eine Stunde wiederholt. Ein Auftrag, der an einer Minute statt an einer festen Stunde hängt, ist einmal im Jahr betroffen; wenn genau ein Lauf zählt, betreibe den Server in UTC.

Worin unterscheidet sich * * * * *?

Dort steht auch im Minutenfeld ein Stern, der Auftrag läuft also jede Minute und damit sechzigmal häufiger. Erst die 0 im Minutenfeld macht aus dem Minutentakt einen Stundenauftrag.

Wird irgendetwas über meinen Server übertragen?

Nein. Der Erklärer sieht nur, was du ins Feld tippst, und selbst das bleibt im Browser. Es gibt keinen Upload, kein Logging und kein Konto; die nächsten Termine entstehen lokal aus der Uhr deines Geräts.