Cronjob Problem

Anonymous

Cronjob Problem

Post 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!!
Top

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Cronjob Problem

Post 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.
Top

User avatar
Joe User
Project Manager
Project Manager
Posts: 11462
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Cronjob Problem

Post by Joe User »

s/oder/und/
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Top

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Cronjob Problem

Post 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.
Top

User avatar
Joe User
Project Manager
Project Manager
Posts: 11462
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Cronjob Problem

Post by Joe User »

ACK aber mit Shebang allein gibt es durchaus mal Probleme, weshalb ich grundsätzlich Beides angebe ;)
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Top

oxygen
RSAC
Posts: 2179
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Cronjob Problem

Post 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.
Top

iberican
Posts: 20
Joined: 2007-10-28 19:54

Re: Cronjob Problem

Post 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
Top

User avatar
Joe User
Project Manager
Project Manager
Posts: 11462
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Cronjob Problem

Post 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 ;)
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Top

EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn

Re: Cronjob Problem

Post 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.
Top

User avatar
Joe User
Project Manager
Project Manager
Posts: 11462
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Cronjob Problem

Post 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
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Top

EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn

Re: Cronjob Problem

Post 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. :)
Top

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Cronjob Problem

Post 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.
Top

EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn

Re: Cronjob Problem

Post 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. :)
Top

wgot
RSAC
Posts: 1707
Joined: 2003-07-06 02:03

Re: Cronjob Problem

Post 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
Top

EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn

Re: Cronjob Problem

Post by EdRoxter »

.. auch außerhalb der <? ?>-Marker? Das ist mir ja fast schon suspekt. ;)
Top

User avatar
Joe User
Project Manager
Project Manager
Posts: 11462
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Cronjob Problem

Post by Joe User »

EdRoxter wrote:.. auch außerhalb der <? ?>-Marker?

Dort sowieso, ist schliesslich kein PHP und wird daher vollständig ignoriert...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Top

Who is online

Users browsing this forum: No registered users and 1444 guests