Zeitgesteuerte Aufgaben einrichten (Cronjobs)¶
Ein Cronjob ist eine Aufgabe, die der Server regelmäßig von selbst ausführt, ohne dass jemand etwas anklicken muss. Typische Fälle: den WordPress-Zeitplan zuverlässig laufen lassen, nachts ein Skript starten, regelmäßig Daten abholen.
Nicht in allen Tarifen enthalten
In den Starter-Tarifen sowie beim Baukasten und bei reinen Domain-Verträgen ist diese Funktion nicht freigeschaltet. Verfügbar ist sie in den Webhosting- und Siteserver-Tarifen. → Tarif erweitern
Im cPanel: Erweitert → Cron-Jobs — cPanel öffnen
So legst du einen an¶
- Cron-Jobs öffnen
- Bei Allgemeine Einstellungen einen Zeitplan auswählen, etwa Alle 15 Minuten
- In das Feld Befehl eintragen, was ausgeführt werden soll
- Auf Neuen Cron-Job hinzufügen klicken
Die Auswahlliste für den Zeitplan füllt die fünf Zeitfelder automatisch aus. Du musst dich also nicht mit deren Schreibweise beschäftigen.
Der Punkt, an dem fast jeder hereinfällt¶
Ohne diesen Zusatz bekommst du hunderte E-Mails
Der Server schickt dir bei jedem einzelnen Lauf eine E-Mail mit dem Ergebnis. Bei einem Job, der alle fünf Minuten läuft, sind das 288 Nachrichten am Tag.
Das ist kein Fehler, sondern so vorgesehen. Nur will es niemand.
Häng deshalb an jeden Befehl diesen Zusatz an:
>/dev/null 2>&1
Also zum Beispiel:
/usr/bin/curl -s "https://deine-domain.de/wp-cron.php" >/dev/null 2>&1
Damit bleibt es still. Ein volles Postfach durch die eigenen Cronjob-Meldungen ist einer der häufigsten Gründe, warum plötzlich keine E-Mails mehr ankommen.
Alternativ kannst du im Feld E-Mail oben die Adresse leeren, dann verschickt der Server generell nichts.
Wie oft ist sinnvoll?¶
| Zeitplan | Wofür |
|---|---|
| alle 15 Minuten | der übliche Fall, etwa für den WordPress-Zeitplan |
| alle 5 Minuten | nur wenn es wirklich taktgenau sein muss, etwa im Shop |
| einmal pro Stunde | für Aufräumarbeiten und Abgleiche |
| einmal nachts | für alles, was länger dauert |
Nicht jede Minute
Ein Job, der jede Minute läuft, bringt fast nie mehr Nutzen, erzeugt aber dauerhaft Last. Wenn mehrere Kunden auf einem Server das tun, wird es für alle langsamer.
Frag dich bei jedem Job: Was passiert eigentlich, wenn er zehn Minuten später läuft? In den allermeisten Fällen lautet die Antwort: nichts.
Beispiele¶
Eine Adresse regelmäßig aufrufen, der häufigste Fall:
/usr/bin/curl -s "https://deine-domain.de/pfad/zur/datei.php" >/dev/null 2>&1
Ein PHP-Skript direkt ausführen:
/usr/local/bin/php /home/DEINBENUTZER/public_html/skript.php >/dev/null 2>&1
Deinen Benutzernamen und den genauen Pfad findest du im Dateimanager, er steht dort in der Adresszeile.
Welche PHP-Version läuft dabei?
Ein Cronjob nutzt nicht zwangsläufig dieselbe PHP-Version wie deine Website. Wenn ein Skript im Browser läuft, über den Cronjob aber nicht, ist das meist die Ursache.
Die Einstellungen dazu findest du unter PHP-Version ändern.
Wenn es nicht läuft¶
Es passiert gar nichts. Prüfe zuerst den Pfad. Ein Tippfehler darin führt dazu, dass der Job
still scheitert. Nimm testweise den Zusatz >/dev/null 2>&1 weg, dann bekommst du eine
E-Mail mit der Fehlermeldung. Wenn du den Fehler gefunden hast, häng ihn wieder an.
Es läuft, aber macht nicht das Erwartete. Häufig fehlen dem Skript im Cronjob Angaben, die im
Browser selbstverständlich sind, etwa die eigene Adresse. Der Aufruf über curl umgeht das, weil
er die Seite ganz normal aufruft.
Du bekommst hunderte E-Mails. Siehe oben, der Zusatz fehlt.
Das könnte auch weiterhelfen¶
- Geplante Aufgaben in WordPress laufen nicht: der häufigste Anwendungsfall
- PHP-Version ändern
- Dateien hochladen mit dem Dateimanager
- Postfach ist voll
