tooloora

Cron jeden Sonntag – 0 0 * * 0 erklärt

Ein Lauf pro Woche, sonntags um Mitternacht – gleichbedeutend mit @weekly, und hier stellt sich die Frage 0 oder 7.

Läuft lokal – nichts wird hochgeladen

Beispiele

Im Klartext

Um 00:00 Uhr, sonntags.

Feld für Feld

  • 0Minute

    zur Minute 0

    Trifft: 0

  • 0Stunde

    zwischen 00:00 und 00:59 Uhr

    Trifft: 0

  • *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

  • 0Wochentag

    sonntags

    Trifft: So

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 0 * * 0 lässt den Auftrag einmal pro Woche laufen, sonntags um 0:00 Uhr. Das letzte Feld wählt den Wochentag, und Cron zählt den Sonntag als 0; eine 7 an dieser Stelle meint denselben Tag. Die Kurzform @weekly steht für genau diese Zeile, weshalb wöchentliche Wartung traditionell in der Nacht auf Sonntag liegt.

Ist der Sonntag in Cron 0 oder 7?

Beides. Das Wochentagsfeld nimmt Werte von 0 bis 7, und 0 und 7 sind derselbe Tag. Deshalb deckt schon der Bereich 0-6 die ganze Woche ab, und ein Bereich wie 5-7 ergibt Freitag, Samstag und Sonntag. Ein Bereich über den Rand hinweg, etwa 6-1 für Wochenende plus Montag, ist nicht erlaubt – dafür schreibt man 6,0,1.

Sonntag um Mitternacht – Anfang oder Ende der Woche?

Für Cron ist es schlicht der Moment, in dem der Wochentag zum Sonntag wird, also die Nacht von Samstag auf Sonntag. In Deutschland beginnt die Woche nach ISO 8601 am Montag, ein Wochenbericht sonntags um 0:00 Uhr fasst also eine noch laufende Woche zusammen. Wer die abgeschlossene Woche will, plant stattdessen 0 3 * * 1 am Montagmorgen.

Wofür taugt ein wöchentlicher Plan?

Für alles, was täglich zu teuer wäre: Vollsicherungen neben den täglichen Zuwächsen, Datenbankpflege, Neuaufbau von Indizes, Berichte über eine ganze Woche, Aufräumen alter Zwischendateien. Der lange Abstand macht Überwachung wichtiger, nicht unwichtiger – ein still gescheiterter Wochenauftrag fällt erst eine Woche später auf, also protokolliere den Rückgabewert.

So trägst du den Ausdruck ein

  1. Zuerst den Wochentag festlegen: 0 für die Nacht auf Sonntag, 1 für den Montagmorgen, wenn die abgeschlossene Woche gemeint ist.
  2. Die Zeile 0 0 * * 0 samt Befehl eintragen – oder @weekly, wenn sich der Plan kaum ändern wird.
  3. Bei einem schweren Auftrag eine ruhige Stunde wählen; Sonntag 3 Uhr ist leerer als Sonntag Mitternacht.
  4. Den Rückgabewert protokollieren, damit ein fehlgeschlagener Wochenlauf nicht sieben Tage unbemerkt bleibt.

Häufige Fragen

Ist 0 0 * * 0 dasselbe wie @weekly?

Ja. Die Kurzform wird beim Einlesen der Crontab in genau diese fünf Felder übersetzt, beide laufen also sonntags um 0:00 Uhr. Ausgeschrieben lässt sich der Auftrag später leichter auf einen anderen Wochentag verschieben.

Wie lasse ich etwas alle zwei Wochen laufen?

Cron kann das nicht ausdrücken, ein Feld für jede zweite Woche gibt es nicht. Üblich ist ein wöchentlicher Plan plus eine Prüfung im Skript, etwa nur zu laufen, wenn die Kalenderwoche gerade ist.

Warum läuft mein Wochenauftrag zusätzlich am Ersten?

Weil auch das Tagesfeld eingeschränkt wurde. Sobald beide Tagesfelder einen Wert tragen, verknüpft Cron sie mit ODER: Der Auftrag läuft dann, sobald entweder das Datum oder der Wochentag passt. Lass das Tagesfeld auf Stern.

Gilt die Terminvorschau in meiner Zeitzone?

Sie nutzt die Uhr deines Geräts, weil die Rechnung im Browser stattfindet. Auf dem Server folgt dieselbe Zeile dagegen der Zeitzone des Servers – ein Unterschied, den man prüfen sollte, sobald beide auseinanderliegen.