Discussion:
PHP Script per Cron ausfuehren
(zu alt für eine Antwort)
Roger Rehnelt
2007-12-27 12:50:10 UTC
Permalink
Hallo zusammen!

Ich möchte ein PHP Script per Cron ausführen, leider hat das bis dato
nicht geklappt. Testweise enthält mein Script momentan nur folgende Zeilen:

#!/usr/bin/php5
<?
mail('***@domain.de','Crontest','foo');
?>

Die Datei hatte ich wahlweise nach /etc/cron.daily/ oder
/etc/cron.hourly/ kopiert. Die Berechtigungen sind auf 777 gesetzt.
Leider wird das Script wohl nicht gestartet, denn weder in den Lofiles
ist etwas zu finden, noch bekomme ich die Mail zugesendet.
Führe ich das Script auf der Konsole aus, klappt es.

Nicht mal ein Eintrag in /etc/crontab hilft:
30 12 * * * root /usr/bin/php5 -f /pfad/script.php

Wo könnte das Problem liegen?

Gruß, Roger.
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Max Muxe
2007-12-27 13:30:08 UTC
Permalink
Post by Roger Rehnelt
Hallo zusammen!
Ich möchte ein PHP Script per Cron ausführen, leider hat das bis dato
#!/usr/bin/php5
<?
?>
Die Datei hatte ich wahlweise nach /etc/cron.daily/ oder
/etc/cron.hourly/ kopiert. Die Berechtigungen sind auf 777 gesetzt.
Leider wird das Script wohl nicht gestartet, denn weder in den Lofiles
ist etwas zu finden, noch bekomme ich die Mail zugesendet.
Führe ich das Script auf der Konsole aus, klappt es.
30 12 * * * root /usr/bin/php5 -f /pfad/script.php
Wo könnte das Problem liegen?
Gruß, Roger.
Hallo Roger,

warum nimmst Du nicht das Programm crontab mit der Option -e für den
Editor um solche Aufgaben zu erledigen? Mit -u als root kannst Du auch
für jeweiligen User einen Eintrag schreiben.

M.
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Boris Andratzek
2007-12-27 14:10:12 UTC
Permalink
Post by Roger Rehnelt
Hallo zusammen!
Ich möchte ein PHP Script per Cron ausführen, leider hat das bis dato
#!/usr/bin/php5
<?
?>
Die Datei hatte ich wahlweise nach /etc/cron.daily/ oder
/etc/cron.hourly/ kopiert. Die Berechtigungen sind auf 777 gesetzt.
Leider wird das Script wohl nicht gestartet, denn weder in den Lofiles
ist etwas zu finden, noch bekomme ich die Mail zugesendet.
Führe ich das Script auf der Konsole aus, klappt es.
30 12 * * * root /usr/bin/php5 -f /pfad/script.php
Wo könnte das Problem liegen?
Moin Roger,

macht denn der Aufruf

/usr/bin/php5 -f /pfad/script.php

überhaupt etwas? Dazu muss ja der ganz Unterbau (sendmail-Konfiguration)
stimmen.... Versuch' es doch erstmal mit 'was Einfacherem:

<?php
$foo=system("touch /tmp/touchtest");
?>

Ich starte meine geschedulten PHP-Scripts aus der crontab übrigens mit
wget, d.h. der Apache bzw www-data startet sie, und ich bekomme von dem
auch logs....

Grüße,

Boris
Max Muxe
2007-12-27 14:50:11 UTC
Permalink
Boris Andratzek schrieb:
[...]
Post by Boris Andratzek
Ich starte meine geschedulten PHP-Scripts aus der crontab übrigens mit
wget, d.h. der Apache bzw www-data startet sie, und ich bekomme von dem
auch logs....
Grüße,
Boris
Das ist interessant: Kannst Du das näher erklären?

M.
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Boris Andratzek
2007-12-27 16:40:15 UTC
Permalink
Post by Max Muxe
[...]
Post by Boris Andratzek
Ich starte meine geschedulten PHP-Scripts aus der crontab übrigens mit
wget, d.h. der Apache bzw www-data startet sie, und ich bekomme von dem
auch logs....
Grüße,
Boris
Das ist interessant: Kannst Du das näher erklären?
Moin Max,

das ist schnell erklärt. Du fragst (z.B. in der crontab) mit

wget http://meinserver.local/script.php

bei Deinem Webserver die Ausführung dieses Scripts an. Das macht naklar
nicht in allen Fällen Sinn, z.B. wenn eine html-Ausgabe erfolgt, dann
bekommst Du die in eine Datei....
Es schränkt aber die Rechte des PHP-Scripts ein auf die, die der Apache
bzw. www-data hat. So kann man nicht zuviel Mist bauen!

Grüße,

Boris
Max Muxe
2007-12-27 17:30:17 UTC
Permalink
Post by Boris Andratzek
Post by Max Muxe
[...]
Post by Boris Andratzek
Ich starte meine geschedulten PHP-Scripts aus der crontab übrigens mit
wget, d.h. der Apache bzw www-data startet sie, und ich bekomme von dem
auch logs....
Grüße,
Boris
Das ist interessant: Kannst Du das näher erklären?
Moin Max,
das ist schnell erklärt. Du fragst (z.B. in der crontab) mit
wget http://meinserver.local/script.php
bei Deinem Webserver die Ausführung dieses Scripts an. Das macht naklar
nicht in allen Fällen Sinn, z.B. wenn eine html-Ausgabe erfolgt, dann
bekommst Du die in eine Datei....
Es schränkt aber die Rechte des PHP-Scripts ein auf die, die der Apache
bzw. www-data hat. So kann man nicht zuviel Mist bauen!
Grüße,
Boris
Cool. Danke.
Den Trick kannte ich nicht!

Schöne Tage
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Roger Rehnelt
2007-12-27 15:10:12 UTC
Permalink
Post by Boris Andratzek
macht denn der Aufruf
/usr/bin/php5 -f /pfad/script.php
Ja, läuft. So wie es sein sollte.
Post by Boris Andratzek
Ich starte meine geschedulten PHP-Scripts aus der crontab übrigens mit
wget, d.h. der Apache bzw www-data startet sie, und ich bekomme von dem
auch logs....
Ja, wget ist kein Problem. Wäre aber die letzte Lösung, das Script per
http zu starten.

Was ich noch merkwürdig finde:
Wenn ich den cronjob über /etc/cron.d/ starte, wo der Eintrag ja dem der
/etc/crontab gleicht, dann klappt es. cron.d wird IMHO aber alle 5
Minuten ausgeführt, ich brauch es einmal am Tag.

Gruß
Roger.
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Wolf Wiegand
2007-12-27 19:30:15 UTC
Permalink
Hallo,
Post by Roger Rehnelt
Die Datei hatte ich wahlweise nach /etc/cron.daily/ oder
/etc/cron.hourly/ kopiert. Die Berechtigungen sind auf 777 gesetzt.
Leider wird das Script wohl nicht gestartet, denn weder in den Lofiles
ist etwas zu finden, noch bekomme ich die Mail zugesendet.
Eine Ursache ist evtl., dass Skripte in /etc/cron.{daily,hourly} nicht
ausgeführt werden, wenn Sie einen Punkt im Dateinamen haben (siehe man
run-parts).

hth, Wolf
--
Man feuchtet ein Kilo Kaffee mit einigen Tropfen Wasser an und läßt es eine
halbe Stunde köcheln. Dann kommt die Hufeisenprobe: Geht es unter, war der
Kaffee nicht stark genug. (Küchenchef in Lucky Luke - Stacheldraht in der
Prärie)
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Roger Rehnelt
2007-12-28 09:00:08 UTC
Permalink
Post by Wolf Wiegand
Eine Ursache ist evtl., dass Skripte in /etc/cron.{daily,hourly} nicht
ausgeführt werden, wenn Sie einen Punkt im Dateinamen haben (siehe man
run-parts).
hth, Wolf
Sehr gut! Danke! Es lag tatsächlich an dem Punkt (Dateiendung)!
Jetzt stellt sich mir noch die Frage, wieso das Script nicht aus
/etc/crontab startet :(
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Dirk Salva
2007-12-28 17:50:23 UTC
Permalink
Post by Roger Rehnelt
Jetzt stellt sich mir noch die Frage, wieso das Script nicht aus
/etc/crontab startet :(
Weil es als separates file nach /etc/cron.d gehört.


ciao, Dirk
--
| Akkuschrauber and AEG GSM stuff |
| The "Ruhrgebiet", best place to live in Germany! |
| Visit my homepage: http://www.nutrimatic.ping.de/ |
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Roger Rehnelt
2007-12-29 09:50:10 UTC
Permalink
Post by Dirk Salva
Post by Roger Rehnelt
Jetzt stellt sich mir noch die Frage, wieso das Script nicht aus
/etc/crontab startet :(
Weil es als separates file nach /etc/cron.d gehört.
Verstehe ich nicht. Ich meinte, dass wenn ich den Eintrag wie in meinem
Anfangspost in /etc/crontab eintrage, dann wird das Script so nicht
gestartet.

Gruß
Roger.
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Dirk Salva
2007-12-29 11:30:07 UTC
Permalink
Post by Roger Rehnelt
Post by Dirk Salva
Weil es als separates file nach /etc/cron.d gehört.
Verstehe ich nicht. Ich meinte, dass wenn ich den Eintrag wie in meinem
Anfangspost in /etc/crontab eintrage, dann wird das Script so nicht
gestartet.
Ja. Und ich meine, Du sollst Deine Zeile in ein extra angelegtes file
unter /etc/cron.d ablegen, so wie die anderen files dort auch.


ciao, Dirk
--
| Akkuschrauber and AEG GSM stuff |
| The "Ruhrgebiet", best place to live in Germany! |
| Visit my homepage: http://www.nutrimatic.ping.de/ |
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Manfred Schmitt
2007-12-30 17:20:11 UTC
Permalink
Post by Dirk Salva
Post by Roger Rehnelt
Jetzt stellt sich mir noch die Frage, wieso das Script nicht aus
/etc/crontab startet :(
Weil es als separates file nach /etc/cron.d gehört.
Hm, dann ist in der manpage von cron wohl ein Fehler ;-)
------ schnipp ------
In general, the admin should not use /etc/cron.d/, but use the standard
system crontab /etc/crontab.
------ schnapp ------

Und wech,
Manne
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Dirk Salva
2007-12-30 19:30:12 UTC
Permalink
Post by Manfred Schmitt
Post by Dirk Salva
Weil es als separates file nach /etc/cron.d gehört.
Hm, dann ist in der manpage von cron wohl ein Fehler ;-)
------ schnipp ------
In general, the admin should not use /etc/cron.d/, but use the standard
system crontab /etc/crontab.
------ schnapp ------
Ehrlich gesagt ist mir wurscht, ob die manpage da einen Fehler enthält
oder nicht. Der OP will eine Lösung, und der von mir genannte Vorschlag
funktioniert bei mir seit Woody. Und, stell Dir vor, andere Software
macht es genauso, sonst wäre das genannte Verzeichnis ja unnütz bzw.
leer;-)


ciao, Dirk
--
| Akkuschrauber and AEG GSM stuff |
| The "Ruhrgebiet", best place to live in Germany! |
| Visit my homepage: http://www.nutrimatic.ping.de/ |
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Manfred Schmitt
2007-12-31 14:40:07 UTC
Permalink
Post by Dirk Salva
Post by Manfred Schmitt
Post by Dirk Salva
Weil es als separates file nach /etc/cron.d gehört.
Hm, dann ist in der manpage von cron wohl ein Fehler ;-)
------ schnipp ------
In general, the admin should not use /etc/cron.d/, but use the standard
system crontab /etc/crontab.
------ schnapp ------
Ehrlich gesagt ist mir wurscht, ob die manpage da einen Fehler enthält
oder nicht. Der OP will eine Lösung, und der von mir genannte Vorschlag
funktioniert bei mir seit Woody. Und, stell Dir vor, andere Software
Nun ja, die /etc/crontab funktioniert auch seit es die gibt ;)
Und vor 'nem halben Jahr oder so unter einem reinem sarge hatte ich genau
die umgekehrte Situation, da hab ich ein Script ums verrecken NUR in der
/etc/crontab zum laufen gekriegt (und so laeuft das auch immer noch).
Keine Ahnung wo da nun das Problem war, hab das suchen/ausprobieren dann
nach einigen Stunden aufgegeben.
Post by Dirk Salva
macht es genauso, sonst wäre das genannte Verzeichnis ja unnütz bzw.
leer;-)
Ack, beim installieren packt $software die cronjobs in die jeweiligen
Verzeichnisse.
Das sagt aber nix da drueber aus was der admin nun im Sinne von "best
practice" machen sollte.
Warum man seine Sachen als admin in die crontab eintragen soll weiss
ich aber auch nicht, Ich finde einzelne Skripte auch uebersichtlicher
und mach das auch ueblicherwiese so.

Und wech,
Manne
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Wolf Wiegand
2007-12-30 19:50:11 UTC
Permalink
Hallo,
Post by Roger Rehnelt
Sehr gut! Danke! Es lag tatsächlich an dem Punkt (Dateiendung)!
Jetzt stellt sich mir noch die Frage, wieso das Script nicht aus
/etc/crontab startet :(
Lt. manpage muss der Eintrag in /etc/crontab mit einem newline
abgeschlossen werden. Fehlt der vielleicht (zur Sicherheit am Ende der
Datei eine Kommentarzeile einfügen)? IIRC kann es auch Probleme geben,
wenn die verschiedenen Spalten im Eintrag nicht korrekt durch
Leerzeichen oder Tabs getrennt werden (entgegen der Angaben in der
manpage). Hier kann man probieren, eine bestehende Zeile zu kopieren
und dann abzuändern. Hast Du mal im Syslog geschaut, ob zum vorgesehenen
Ausführzeitpunkt dort Einträge erscheinen?

Falls Du Dein Skript über einen Eintrag in /etc/cron.d/ starten
möchtest, dürfen auch dort keine Punkte im Dateinamen sein.


hth, Wolf
--
Wie unser Internet schöner wird: Ich werde diese Liste nicht von den Webseiten
der taz kopieren und in alle Welt verschicken - die URL reicht. (die
tageszeitung)
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Loading...