# Mit Cronjob PHP-Script aufrufen schlägt fehl



## Sasser (7. Juli 2010)

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?


----------



## Bratkartoffel (8. Juli 2010)

Hi,

ich versteh dein Problem irgendwie nicht, bei mir gehts:

/tmp/test.php:

```
#!/usr/bin/php
<?php
  echo "test\n";
?>
```


/var/spool/cron/crontabs/www-data:

```
# 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


----------



## Sasser (8. Juli 2010)

```
#!/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...


----------



## Bratkartoffel (8. Juli 2010)

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


----------



## Sasser (10. Juli 2010)

Funktioniert leider auch nicht...


----------



## Bratkartoffel (12. Juli 2010)

Hallo,

hast du das Execute-Bit gesetzt?

```
chmod +x test.sh
```

Gruß
BK


----------

