Page 1 of 1
Cronjob Problem
Posted: 2008-02-26 10:15
by Anonymous
Hallo!
Ich habe ein großes Probl. mit dem einrichten von ein paar Jobs.
Über crontab -e richte ich wie folgt ein:
Code: Select all
0 10 * * * /var/www/w3/html/termine/test.php
Der Job sollte also um 10 Uhr die test.php ausführen (in test.php ist ein kleine Mailfunktion, die eine Testmail versendet)
Leider passiert überhaupt nichts. Auch wenn ich über
Code: Select all
0 10 * * * root /var/www/w3/html/termine/test.php
probiere -- nix.
vi /etc/crontab liefert folgendes:
Code: Select all
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Wo kann der Fehler liegen bzw. was mach ich falsch?!?! Habe auch probiert der Datei test.php die Rechte auf 777 zu ändern... auch nix...
#-o
Vielen Dank für eine Idee!!
Re: Cronjob Problem
Posted: 2008-02-26 10:54
by Roger Wilco
Du musst die Datei entweder direkt mit dem PHP-Interpreter (cli Variante) aufrufen oder eine entsprechende She-Bang in die erste Zeile packen und das Skript ausführbar machen.
Re: Cronjob Problem
Posted: 2008-02-26 11:16
by Joe User
s/oder/und/
Re: Cronjob Problem
Posted: 2008-02-26 11:39
by Roger Wilco
Joe User wrote:s/oder/und/
Nö. Wenn die Datei direkt mit dem Interpreter aufgerufen wird (z. B. "/usr/bin/php /path/to/script.php") ist keine She-Bang nötig. Das gilt so auch für alle anderen Shellskripte.
Re: Cronjob Problem
Posted: 2008-02-26 12:32
by Joe User
ACK aber mit Shebang allein gibt es durchaus mal Probleme, weshalb ich grundsätzlich Beides angebe ;)
Re: Cronjob Problem
Posted: 2008-02-26 13:38
by oxygen
Ein "Problem" der Shebang Zeile ist aber, dass sie beim Aufruf über Apache oÄ nicht ignoriert wird. Das gibt sehr wahrscheinlich Probleme. Deswegen verzichte ich drauf.
Re: Cronjob Problem
Posted: 2008-02-27 00:06
by iberican
1. checken wo php läuft
2. z.b. /usr/bin/php -f /pfad/zum/skript/bam.php
wenn das nicht tut mal ./skript.php starten, dort wo sich das skript befindet
Re: Cronjob Problem
Posted: 2008-02-27 13:39
by Joe User
oxygen wrote:Ein "Problem" der Shebang Zeile ist aber, dass sie beim Aufruf über Apache oÄ nicht ignoriert wird. Das gibt sehr wahrscheinlich Probleme. Deswegen verzichte ich drauf.
Wer ruft denn Shellscripte per HTTP auf? Dafür gibt es das CGI ;)
Re: Cronjob Problem
Posted: 2008-02-28 08:05
by EdRoxter
Eine Shebang in einer PHP-Datei? Ja nee, is klar..
Mein Vorschlag:
Code: Select all
wget -O /dev/null http://dein.server/script.php
oder vergleichbare Alternativen.
Re: Cronjob Problem
Posted: 2008-02-28 08:50
by Joe User
EdRoxter wrote:Eine Shebang in einer PHP-Datei? Ja nee, is klar..
Funktioniert wunderbar:
Code: Select all
cat > shebang.php << "EOF"
#/usr/bin/php
<?php phpinfo(); ?>
EOF
chmod 0755 shebang.php
./shebang.php
Re: Cronjob Problem
Posted: 2008-02-28 09:17
by EdRoxter
Ist aber nicht unbedingt schön, IMHO. Nur durchaus interessant - ich hätte gedacht, dass der PHP-Parser mit ebenjener Shebang-Zeile ein Problem haben könnte.
Ich denke wohl zu fest in Webapplikationen und mod_php/suPHP. :)
Re: Cronjob Problem
Posted: 2008-02-28 10:28
by Roger Wilco
EdRoxter wrote:Ist aber nicht unbedingt schön, IMHO.
Wie gut, dass es für "schön" keine objektiven Maßstäbe gibt.
Ich finde bspw. dein Konstrukt mit wget unglaublich hässlich. Was machst du wenn der Webserver ausfällt? Was machst du, wenn alle Slots des Webservers belegt sind? Was machst du, wenn der Webserver fehlkonfiguriert ist und den Quellcode des Skripts ausliefert oder einen Fehler 404 ausgibt?
Die Variante über die Shell (mit der Shebang) ist wesentlich fehlerunanfälliger.
EdRoxter wrote:Nur durchaus interessant - ich hätte gedacht, dass der PHP-Parser mit ebenjener Shebang-Zeile ein Problem haben könnte.
Die bekommt der PHP Interpreter überhaupt nicht zu sehen. Die ist nur für die ausführende Shell interessant.
EdRoxter wrote:Ich denke wohl zu fest in Webapplikationen und mod_php/suPHP. :)
Ja, das tust du. PHP unterscheidet sich nicht wirklich von Perl, Python, Ruby oder einer anderen Skriptsprache.
Re: Cronjob Problem
Posted: 2008-02-28 12:25
by EdRoxter
Roger Wilco wrote:EdRoxter wrote:Nur durchaus interessant - ich hätte gedacht, dass der PHP-Parser mit ebenjener Shebang-Zeile ein Problem haben könnte.
Die bekommt der PHP Interpreter überhaupt nicht zu sehen. Die ist nur für die ausführende Shell interessant.
Dann liege ich da wohl einer Fehlinformation auf. Ich war davon ausgegangen, dass die Shebang dem bezeichneten Interpreter sich selbst als Argument übergibt und mithin dann nochmal selbst interpretiert wird. Und da in PHP ja Kommentarzeilen üblicherweise nicht mit einer Raute beginnen... Aber gut, dann war das wohl mein Denkfehler.
Deine Einwände bezüglich wget sind auch absolut berechtigt.
Insofern: Mein Fehler. :)
Re: Cronjob Problem
Posted: 2008-02-28 18:18
by wgot
Hallo,
EdRoxter wrote:da in PHP ja Kommentarzeilen üblicherweise nicht mit einer Raute beginnen
PHP kennt auch die Raute als Kommentarzeilenkennung:
http://de.php.net/manual/de/language.ba ... mments.php
Gruß, Wolfgang
Re: Cronjob Problem
Posted: 2008-02-28 18:24
by EdRoxter
.. auch außerhalb der <? ?>-Marker? Das ist mir ja fast schon suspekt. ;)
Re: Cronjob Problem
Posted: 2008-02-28 19:13
by Joe User
EdRoxter wrote:.. auch außerhalb der <? ?>-Marker?
Dort sowieso, ist schliesslich kein PHP und wird daher vollständig ignoriert...