Cronjob oder Aufgabe erstellen (und was zu tun ist, wenn sie nicht ausgeführt wird)
Mit einem Cronjob (in DirectAdmin: Cronjobs) lassen Sie ein Skript automatisch zu festen Zeiten ausführen, zum Beispiel jede Nacht. Im Folgenden lesen Sie, wie Sie einen Cronjob erstellen und was Sie tun können, wenn er nicht funktioniert.
Regeln für Cronjobs
- Lassen Sie eine Aufgabe höchstens einmal alle 10 Minuten starten. Darum bitten wir alle Kunden, denn Sie teilen sich den Server mit anderen Websites.
- Verteilen Sie mehrere Cronjobs zeitlich und wählen Sie einen ruhigen Zeitpunkt, etwa 03:17 statt genau Mitternacht.
- Rechenintensive Cronjobs, die den Server lange belasten, sind nicht erlaubt. Auf demselben Server laufen weitere Websites. Bei Bedarf beenden wir einen Cronjob. Halten Sie Ihre Aufgaben daher kurz und lassen Sie sie nicht häufiger laufen als nötig.
Einen Cronjob erstellen
- Melden Sie sich bei DirectAdmin an und klicken Sie unter Erweiterte Funktionen auf Cronjobs.
- Klicken Sie auf Cronjob erstellen.
- Geben Sie Minute, Stunde, Tag, Monat und Wochentag ein. Tragen Sie bei der Minute immer eine Zahl ein, kein Sternchen, sonst läuft die Aufgabe jede Minute.
- Geben Sie beim Befehl den vollständigen Pfad ein, zum Beispiel:
/usr/local/bin/php -q /home/gebruiker/domains/ihredomain.de/public_html/taak.php
Ersetzen Sie gebruiker durch Ihren DA-Benutzernamen. - Klicken Sie auf Erstellen.

E-Mail nach jedem Cronjob
Die Ausgabe eines Cronjobs wird an das Standard-E-Mail-Konto Ihres Pakets gesendet, siehe Das Standard-E-Mail-Konto in DirectAdmin. Sie können die Ausgabe auch mit Send all Cron output to email an eine eigene Adresse senden. Möchten Sie keine E-Mail erhalten, klicken Sie beim Erstellen auf Prevent Email oder setzen Sie hinter den Befehl:
>/dev/null 2>&1
Hinweis zu PHP-Skripten
Ein Skript, das über einen Cronjob ausgeführt wird, weiß nicht, unter welcher Domain es läuft. $_SERVER['SERVER_NAME'] und $_SERVER['DOCUMENT_ROOT'] sind leer, und ein Include mit relativem Pfad kann fehlschlagen. Setzen Sie daher an den Anfang Ihres Skripts:
$pad = '/home/gebruiker/domains/ihredomain.de/public_html'; $_SERVER['SERVER_NAME'] = 'ihredomain.de'; $_SERVER['DOCUMENT_ROOT'] = $pad; set_include_path($pad . PATH_SEPARATOR . get_include_path());
Ihr Cronjob läuft nicht?
Gehen Sie diese Punkte nacheinander durch:
- Lesen Sie die Ausgabe. Entfernen Sie
>/dev/null 2>&1vorübergehend und sehen Sie sich die E-Mail im Standard-E-Mail-Konto an, oder legen Sie eine eigene Adresse fest. Dort steht oft genau, was schiefläuft. Sie können die Ausgabe auch in eine Logdatei schreiben, indem Sie>> /home/gebruiker/cron-log.txt 2>&1hinter den Befehl setzen. - Prüfen Sie den Pfad. Die Meldung Could not open input file bedeutet, dass der Pfad zum Skript nicht stimmt. Sehen Sie im Dateimanager nach: Der Pfad beginnt mit
/home/gebruiker/domains/. - Prüfen Sie die PHP-Version. Mit
/usr/local/bin/phpverwendet die Aufgabe dieselbe PHP-Version wie Ihre Website. Funktioniert Ihr Skript nur mit einer anderen Version, passen Sie diese unter Select PHP version an. - Testen Sie den Befehl manuell. Verfügt Ihr Paket über das Terminal, fügen Sie den Befehl dort ein und sehen Sie nach, was passiert, siehe SSH-Zugang und das Terminal in DirectAdmin. Ohne Terminal öffnen Sie das Skript in Ihrem Browser oder rufen es im Cronjob über
curl --silent https://www.ihredomain.de/taak.phpauf. - Prüfen Sie die Rechte. Das Skript muss lesbar sein: Dateien sollten auf 644 und Ordner auf 755 stehen. Siehe Rechte von Dateien und Ordnern (chmod).
- Prüfen Sie den Zeitpunkt. Sehen Sie unter Cron Job Executes: nach, ob die Aufgabe dann läuft, wann Sie es erwarten. Steht bei der Minute ein Sternchen, läuft sie jede Minute. Das ist zu häufig.
- Prüfen Sie, wie lange die Aufgabe dauert. Dauert eine Aufgabe lange oder startet sie erneut, bevor die vorherige beendet ist, kann sie hängen bleiben oder Ihr Paket an seine Limits bringen. Verteilen Sie die Arbeit dann auf mehrere Durchläufe.
date >> /home/gebruiker/cron-log.txt; vor Ihren Befehl.Siehe auch im DirectAdmin-Handbuch: Das Standard-E-Mail-Konto Ihres Pakets.
Ausführliche Erklärung mit Screenshots: Cronjobs: Aufgaben automatisch ausführen lassen im DirectAdmin-Handbuch.
Mehr lernen? Folgen Sie dem kostenlosen WordPress-Kurs, Lektion 6.3 Bilder, PHP und weitere Geschwindigkeitsgewinne.
