Debianroot Cronjob soll .php als php-cli ausführen, macht er aber nicht

spikaner

Quereinsteiger @ php
Ich habe einen Debianroot und PHP 5.3 installiert
PHP 5.3.3-7+squeeze3 with Suhosin-Patch (cli) (built: Jun 28 2011 08:24:40)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with XCache v1.3.0, Copyright (c) 2005-2009, by mOo
with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
Nun wollte ich ein php script das CLI erfordert via cronjob installieren.
*/1 * * * * /var/www/script/script.php
aber das script soll als CLI ausgeführt werden in der .php steht auch
Code:
#!/usr/bin/php -Cq
aber das script startet nicht in der cron.log steht
/USR/SBIN/CRON[21591]: (CRON) error (grandchild #21592 failed with exit status 255)
eine php5-cli binary finde ich auch nicht, auf der Komandozeile kann das Script aber ohne Probleme gestartet werden. Wie bringe ich crontab dazu das Script als php5-cli zu starten ?

mfg
 
Hi,

führe mal dein Script auf der Konsole aus und lass dir danach mit "echo $?" den Exitwert ausgeben. Falls dieser nicht 0 ist, dann schreib ans Ende von deinem Script ein "exit(0)" rein.

// Edit: Und eine "php5-cli" binary gibts nicht, das ist das "php" ;)

Gruß
BK
 
Zuletzt bearbeitet:
schon Probiert..,
gibt mir 0 aus, aber das script wird dev. nicht ausgeführt ich würde es an den Veränderungen in der Datenbank sehen;)

mfg

P.S. Danke für die schnelle Antwort, das Forum hier ist mein letzter "Strohhalm" bevor ich ausn Fenster spring ^^

P.S.S.
Ich habe auch probiert:
*/1 * * * * /usr/bin/php -f /var/www/script/script.php
*/1 * * * * /usr/bin/php5 -f /var/www/script/script.php
*/1 * * * * php /var/www/script/script.php
jedesmal ohne erfolg
 
Zuletzt bearbeitet:
Hi,

ist es überhaupt notwendig, dass dein Script als Root läuft? Bin mir zwar nicht sicher, aber das könnte auch ein Grund für den Fehler sein.

Wo liegt eigentlich dein Crontab?

Welche Rechte hat die php-binary? ("ls -l $( which php )"

Gruß
BK
Gruß
BK
 
Habs jetzt ganz pragmatisch gelöst ^^

*/ * * * * /usr/local/bin/script.sh
als cronjob

darin
#!/bin/sh
/usr/bin/php -f /var/www/script/script.php

und siehe da es läuft... nur warum es ohne diesen Umweg net lief is mir etwas schleierhaft
und die binary hat
lrwxrwxrwx 1 root root 21 25. Nov 09:34 /usr/bin/php -> /etc/alternatives/php

mfg
 
Hallo!

Wenn ein Cronjob misslingt, dann schickt cron eine Mail.
Ein Aufruf von "mail" auf der Konsole könnte also Licht ins Dunkle bringen.

Warum auch immer, aber bei mir wird die Mail zwar an root@hostname adressiert, landet aber beim einfachen User im Postfach (welcher dann die Mail natürlich auch lesen kann..... inkl. der Security-Mails :eek:).

Und bevor Du an der /etc/crontab rumfummelst, schaue erstmal nach ob in /var/spool/cron/crontabs/ Dateien liegen.
Da cron erstere bei mir ignoriert und statt dessen letztere ausführt, scheinen diese auch Vorrang zu haben.
Und bearbeite die Crontabs nicht manuell, sondern mit "crontab -e -u Benutzername"

/etc/alternatives/php verweist wiederum auf /usr/bin/php5.

Gruss Dr Dau
 
Hallo!
Wenn ein Cronjob misslingt, dann schickt cron eine Mail.
Ein Aufruf von "mail" auf der Konsole könnte also Licht ins Dunkle bringen.
geht net kein Mailservice installiert, der server hat nen only A-Record verweis.. also über irgendwelche mails mach ich mir keine sorgen

Alle crons worden via crontab -e eingetragen , aber dieser hier spinnt ein wenig rum.., nachdem ich das problem behoben hatte meckerte er weiter.
2011-11-25 11:20:31.390
INFO: Operation too slow. Less than 10 bytes/sec transfered the last 12 seconds for API https://api.eveonline.com/account/AccountStatus.xml.aspx
nachdem ich "testweise" auf http geschaltet habe waren die fehler weg...

Ich werd mir am We evtl. mal die Zeit nehmen das ganze ding neu aufzusetzen..

mfg
 
Hi,

/usr/bin/php -f /var/www/script/script.php

Du kannst das Script auch direkt als .php ausführen.
Dazu mußt du nur die Shebang ändern in
Code:
#!/usr/bin/php -q
<?php
...
und dem Script das Execute-Bit verpassen:
Code:
chmod u[g][o]+x /var/www/script/script.php
Dann sollte auch dein erster Crontab-Eintrag funktionieren:
Code:
*/1 * * * * /var/www/script/script.php

Gruß Kyoya Stefan
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück