Cronjob / Aufgabe anlegen
Sie können sogenannte Cronjobs anlegen, also Programme, die zu festgelegten Zeiten ausgeführt werden. Cronjobs, die häufiger als einmal alle 10 Minuten laufen, sind nicht erlaubt. Auch schwere Cronjobs (die den Prozessor extrem belasten) sind nicht erlaubt. Schließlich laufen noch weitere Websites auf demselben Server. Sie möchten nicht von anderen gestört werden, und andere nicht von Ihnen. WebOké kann Cronjobs bei Bedarf beenden. Die Regel lautet: Ein Cronjob darf nicht länger als 10 Sekunden laufen. Häufigere Cronjobs sind ab den POWER-WEBHOST-Paketen erlaubt.
Wenn Sie mehrere Cronjobs anlegen, gilt dies für alle zusammen: Starten Sie also bitte höchstens einen Cronjob pro 10 Minuten. Verteilen Sie Ihre Cronjobs gut, das kommt der Leistung des Servers zugute.
Nehmen Sie in Ihren Cronjob am besten diese Anweisung auf: set_time_limit(10). Dadurch stoppt Ihr Cronjob, wenn er länger als 10 Sekunden dauert. Einen Cronjob richten Sie im Control Panel ein.
Wie sieht ein Cronjob aus?
Ein Cronjob, der zum Beispiel ein PHP-Programm startet, sieht so aus:
/usr/local/bin/php -q /home/<usrdir>/domains/<ihre-domain.xx>/public_html/<taak.php>
Ersetzen Sie <usrdir> durch Ihren DirectAdmin-Benutzernamen, <ihre-domain.xx> durch Ihren Domainnamen und <taak.php> durch Ihr PHP-Skript.
E-Mail nach jedem Cronjob
Standardmäßig wird eine E-Mail an Ihr Standard-E-Mail-Konto geschickt. Darin stehen eventuelle Fehler des Cronjobs und auch eventuelle Ausgaben. Dieses Postfach können Sie einsehen, indem Sie sich auf webmail.weboke.nl mit Ihrem Accountnamen als Benutzernamen, dem Passwort und dem Servernamen anmelden. Wenn Sie nicht mehr jedes Mal eine E-Mail erhalten möchten, setzen Sie dies hinter den Cronjob: /dev/null 2>&1
Pfade sind etwas anders als bei FTP
Sie müssen also den vollständigen Pfad zu PHP voranstellen und den vollständigen Pfad auf dem Server zum PHP-Programm angeben. Das ist anders als bei FTP: Jetzt steht /home/usrdir davor. Ersetzen Sie usrdir durch Ihren eigenen Benutzernamen (den des Control Panels).
Wichtig! Ein Cronjob kennt keinen Domainnamen
Beachten Sie auch, dass das PHP-Programm in einem Cronjob nicht weiß, unter welcher Website es läuft. $_SERVER['SERVER_NAME'] ist leer, und auch ein include schlägt fehl, weil es keinen Basispfad gibt!
Beispielcode für Ihr Cron-Programm, um das zu verhindern:
- $pad = "/home/<usrname>/domains/<ihre-domain.xx>/public_html"; (<usrdir> und <ihre-domain.xx> unbedingt ersetzen!)
- $_SERVER['SERVER_NAME'] = 'ihre-domain.xx';
- $_SERVER['DOCUMENT_ROOT'] = $pad;
- set_include_path($pad . PATH_SEPARATOR . ini_get("include_path"));
