Aus Domain-Offensive - Wiki
Wie kann ich über einen Cronjob eine PHP-Datei ausführen? --ER--
- Definition Cronjob
- Cron (Ableitung von Chronos = Zeit): Im Hintergrund werden in regelmäßigen Abständen Befehle/Skripte aufgerufen und ausgeführt. Dies können Anwendungen wie bspw. das automatische Versenden von E-Mails, das Abholen von Log-Dateien, die Erstellung von Backsups oder die Optimierung einer Datenbank sein. In Tabellen (sog. Crontabs) sind diese Befehle gespeichert und werden von dort aus ausgeführt.
- Einrichtung von Cronjobs
-
- Es können nahezu alle Scripte mit einem Cronjob ausgeführt werden. Dazu gehören z.B. Perl, PHP und Python.
- Allerdings können Scriptsprachen die fest im Webserver sind (z.B. SSI) nicht direkt per Cronjob aufgerufen werden.
- Beispiel für ein Cronjob per PHP
-
- Für ein PHP-Script müsste die Zeile beispielsweise wie folgt lauten:
*/5 * * * * /usr/local/php5/bin/php -f ~/html/ihrphpscript.php
- Erklärung für das genannte Beispiel
- - */5 steht für einen Abruf alle 5 Minuten
- - die vier * dahinter für Stunde, Tag und Monat (Jede Stunde an jedem Tag in jeder Monat).
- - Suchen Sie im Homeverzeichnis (das ~ Tilde Zeichen steht immer für Ihr Homeverzeichnis) im Ordner "html" nach dem Script "ihrphpscript.php" und führen es aus indem Sie es mit PHP aufrufen.
Beispieleintrag im Confixx auf webspaceXX.do.de
Beispieleintrag im Confixx auf allen serverXX.configcenter.info
Minute : */5
Stunde : *
Tag : *
Monate : *
Wochentag : *
Befehl : /usr/local/php5/bin/php -f ~/html/testmail.php
- Hinweis zur Ausführung mit PHP GET-Parametern
- Über die Kommandozeile können einem PHP-Script leider keine $_GET Parameter übergeben werden.
- Falsch wäre beispielsweise dieser Befehl:
/usr/local/php5/bin/php -f ~/html/bild.php?xyz=3
- In diesem Fall müssten Sie das Script wie folgt aufrufen:
/usr/local/php5/bin/php -f ~/html/bild.php 3
- Auf den Wert "3" können Sie dann anstatt mit $_GET['xyz'] mit dem Befehl $_SERVER['argv'][1] zugreifen.
- Mehr Sicherheit bei Cronjobs
- Um auch bei einem Cronjob die größtmögliche Sicherheit zu garantieren, empfehlen wir Ihnen das Cronscript-Verzeichnis mit einem Passwortschutz zu versehen und den Cronjobbefehl so zu verändern, das er weiterhin in das Verzeichnis zugreifen kann.
- Wir erklären Ihnen das anhand folgenden Beispieles:
- Das zu schützende Verzeichnis lautet: "http://www.ihredomain.xy/pfad-zum-cronjobverzeichnis/" und wird einem Kennwortschutz versehen. Rufen Sie das Verzeichnis nun im Browser auf, erscheint eine Passwortabfrage.
- Diese ist nur passierbar, wenn der richtige Benutzername und das richtige Passwort eingegeben werden.
- Damit der Cronjob auf das Verzeichnis zugreifen kann, muss er wie in folgenden Beispiel angepasst werden:
-
- muss verändert werden in:
-
zurück