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. Nachfolgend erfahren Sie, wie Sie einen Cronjob erstellen und was Sie tun können, wenn er nicht funktioniert.
Regeln für Cronjobs
- Bei Webhost One und Webhost Two darf höchstens alle 10 Minuten eine Aufgabe starten, für alle Ihre Aufgaben zusammen.
- Bei den Power Webhost-Paketen dürfen Aufgaben häufiger ausgeführt werden.
- Verteilen Sie mehrere Cronjobs zeitlich und wählen Sie einen ruhigen Zeitpunkt, wie 03:17 Uhr statt genau Mitternacht.
- Schwere Cronjobs, die den Server lange belasten, sind nicht erlaubt. Auf demselben Server laufen mehrere Websites. Falls nötig 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 die Minute, die Stunde, den Tag, den Monat und den Wochentag ein. Geben 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/jouwdomein.nl/public_html/taak.php
Ersetzen Sie gebruiker durch Ihren DA-Benutzernamen. - Klicken Sie auf Erstellen.

E-Mail nach jedem Cronjob
Die Ausgabe eines Cronjobs geht an das Standard-E-Mail-Konto Ihres Pakets, siehe Das Standard-E-Mail-Konto in DirectAdmin. Sie können die Ausgabe auch an eine eigene Adresse senden mit Gesamte Cron-Ausgabe per E-Mail senden. Möchten Sie keine E-Mail erhalten, klicken Sie beim Erstellen auf E-Mails verhindern, oder fügen Sie hinter dem Befehl ein:
>/dev/null 2>&1
Hinweis zu PHP-Skripten
Ein Skript, das von einem 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 einem relativen Pfad kann fehlschlagen. Setzen Sie deshalb oben in Ihrem Skript:
$pad = '/home/gebruiker/domains/jouwdomein.nl/public_html'; $_SERVER['SERVER_NAME'] = 'jouwdomein.nl'; $_SERVER['DOCUMENT_ROOT'] = $pad; set_include_path($pad . PATH_SEPARATOR . get_include_path());
Läuft Ihr Cronjob nicht?
Gehen Sie diese Punkte einzeln durch:
- Lesen Sie die Ausgabe. Entfernen Sie
>/dev/null 2>&1vorübergehend und schauen Sie in der E-Mail im Standard-E-Mail-Konto nach, oder richten Sie eine eigene Adresse ein. Dort steht oft genau, was schiefgeht. Sie können die Ausgabe auch in eine Protokolldatei schreiben, indem Sie hinter dem Befehl>> /home/gebruiker/cron-log.txt 2>&1einfügen. - Überprüfen Sie den Pfad. Die Meldung Could not open input file bedeutet, dass der Pfad zum Skript nicht stimmt. Schauen Sie im Dateimanager: der Pfad beginnt mit
/home/gebruiker/domains/. - Überprü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 bei Select PHP version an. - Testen Sie den Befehl manuell. Wenn Sie ein Paket mit Terminal haben, fügen Sie den Befehl dort ein und sehen Sie, was passiert, siehe SSH oder das Terminal in DirectAdmin öffnen. Ohne Terminal öffnen Sie das Skript in Ihrem Browser, oder rufen Sie es im Cronjob auf über
curl --silent https://www.jouwdomein.nl/taak.php. - Überprüfen Sie die Berechtigungen. Das Skript muss lesbar sein: Dateien sollten auf 644 stehen und Ordner auf 755. Siehe Berechtigungen von Dateien und Ordnern (chmod).
- Überprüfen Sie den Zeitpunkt. Schauen Sie bei Cronjob wird ausgeführt:, ob die Aufgabe läuft, wann Sie es erwarten. Steht bei der Minute ein Sternchen, läuft sie jede Minute und kann gestoppt werden.
- Überprüfen Sie das Paketlimit. Läuft die Aufgabe häufiger, als Ihr Paket erlaubt, oder dauert sie zu lange, wird sie abgebrochen. 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.
