Mit Cronjob PHP-Script aufrufen schlägt fehl

Sasser

Erfahrenes Mitglied
Guten Tag!

Ich nutze in einem PHP-Script mit welchem ich eine weitere PHP-Datei aufrufe den Befehl: php datei.php > /dev/null &

Funktioniert wunderbar. Nun möchte ich eine Datei per Cronjob aufrufen und diese ausführen.

Dazu nutze ich den Befehl: /usr/bin/php /srv/www/vhosts/domain.de/httpdocs/cronjobs/cronjob.php > /dev/null &

Der Pfad stimmt 100%ig, nur leider wird dieser nicht ausgeführt.

Derzeit nutze ich den Befehl: /usr/bin/wget http://www.domain.de/cronjobs/cronjob.php > /dev/null & welcher auch funktioniert, aber es dauert zu lange bis das Programm wget aufgerufen wird.

Wo liegt mein Fehler?
 
Hi,

ich versteh dein Problem irgendwie nicht, bei mir gehts:

/tmp/test.php:
PHP:
#!/usr/bin/php
<?php
  echo "test\n";
?>


/var/spool/cron/crontabs/www-data:
Code:
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.vshIrC/crontab installed on Thu Jul  8 15:00:26 2010)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
# m h  dom mon dow   command
* * * * * /tmp/test.php

So bekomme ich jetzt jede Minute eine eMail vom Cron-Daemon mit der Ausgabe des Scripts in mein Postfach.

Gruß
BK
 
Zuletzt bearbeitet:
PHP:
#!/usr/bin/php
<?php
  echo "test\n";
?>

Muss denn unbedingt #!/usr/bin/php in der Datei platziert werden? Das ist doch, wenn ich richtig verstanden habe, nur falls der Pfad zu PHP im Cronjob nicht stimmt oder?

Da Kuriose ist ja, dass es einmal funktioniert hat. Nach ein paar Tagen wurden dann plötzlich alle Cronjobs in der Form nicht mehr ausgeführt und ich musste wieder auf wget umstellen...
 
Hallo,

Cron führt mein Script einfach als normales Script in der Shell aus. Das "#!" nennt man SheBang und sagt der Shell, wer das Script ausführen kann.
Somit kannst du das Script auch über die Shell mit einem "/tmp/test.php" ausführen, ohne dass du den Interpreter angeben musst.

Gruß
BK
 
Zurück