PHP-shell script körs inte i crontab

Trädvy Permalänk
Medlem
Plats
Karlstad
Registrerad
Apr 2005

PHP-shell script körs inte i crontab

Jag gjort ett par PHP script till min websida som bland annat städar upp i databasen och kollar vissa grejer. Dessa script vill jag köra med crontabs men scripten verkar inte köras.

Jag kör Debain Etch med lighttpd och PHP5 som cgi.

Jag har skrivit #!/usr/lib/cgi-bin/php5 -q längst upp i filerna och de går utmärkt att köra via med ett vanlig kommando(t.ex. "/home/user/www/optimizedb.php"). Men när jag skiver in samma kommando i ett cronjob så händer det ingenting.
Cronjobet körs med root-kontot och ser ut enligt följande:

* 5,11,17,23 * * * root /home/user/www/script.php

Men scriptet körs aldrig. Någon som vet vad som kan vara fel?

Bloggar om Hemautomation på HomeAutomateIt.com

Trädvy Permalänk
Medlem
Plats
under en bro
Registrerad
Dec 2001

testa

* 5,11,17,23 * * * root php /home/user/www/script.php

Trädvy Permalänk
Medlem
Plats
Discountvillage
Registrerad
Mar 2002

Har du installerat php5-cli?
Det kanske går lättare att köra php-filen med det kommandot.

Trädvy Permalänk
Medlem
Plats
Karlstad
Registrerad
Apr 2005

Tack för svaren, men jag kan inte få det att funka

Jag kör PHP med php-cgi paketet och det går som sagt utmärkt att köra php scripten med både /usr/lib/cgi-bin/php5 och /usr/bin/php5-cgi men i crontb händer det inget.

Bloggar om Hemautomation på HomeAutomateIt.com

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Okt 2006

Det är inte samma miljö att köra i CLI och i crontab, så det är inte säkert att den hittar alla bilbliotek som den behöver osv.

Lättaste sättet att testa det är att göra ett shellscript som sätter upp miljön så att den är samma som då du kör från shellet och sedan köra det i crontab.

hur din miljö ser ut ser du med kommandont "env"

"Stallman to Dvorak: Welcome to freedom, your rulebook is in the mail" - Fake Steve Jobs
rfc-1925 - The Twelve Networking Truths

Trädvy Permalänk
Medlem
Plats
Karlstad
Registrerad
Apr 2005

Okej, det låter ju troligt.

Jag har dock ingen aning om hur ett sådant script skulle kunna göras så där skulle jag nog behöva lite hjälp.

Kommandot "env" ger förjande(jag har rensat bort lite känslig data och sådant som inte borde ha någon betydelse):

TERM=xterm
SHELL= /bin/bash
SSH_TTY= /dev/pts/0
USER=root
PATH= / usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PS1= \ h:\w\$
SHLVL=1
HOME= / root
_= /usr/bin/env

Någon som kan hjälpa mig med ett shellscript som gör att jag kommer åt alla bibliotek m.m. för att kunna köra mina phpscript?

Bloggar om Hemautomation på HomeAutomateIt.com

Trädvy Permalänk
Medlem
Plats
vänster om atom 276
Registrerad
Jul 2001
Citat:

Ursprungligen inskrivet av pekz0r
Okej, det låter ju troligt.

Jag har dock ingen aning om hur ett sådant script skulle kunna göras så där skulle jag nog behöva lite hjälp.

Kommandot "env" ger förjande(jag har rensat bort lite känslig data och sådant som inte borde ha någon betydelse):

TERM=xterm
SHELL= /bin/bash
SSH_TTY= /dev/pts/0
USER=root
PATH= / usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PS1= \ h:\w\$
SHLVL=1
HOME= / root
_= /usr/bin/env

Någon som kan hjälpa mig med ett shellscript som gör att jag kommer åt alla bibliotek m.m. för att kunna köra mina phpscript?

Om du lägger "env > /cronenv" raden efter #!/usr/lib/cgi-bin/php5 -q, vad står det i /cronenv?

qw q b

Trädvy Permalänk
Medlem
Plats
Karlstad
Registrerad
Apr 2005

I PHPscriptet menar du då eller?

När jag gör det så skrivs bara raden "env > /cronenv" ut när scriptet körs.

Bloggar om Hemautomation på HomeAutomateIt.com

Trädvy Permalänk
Medlem
Plats
vänster om atom 276
Registrerad
Jul 2001
Citat:

Ursprungligen inskrivet av pekz0r
I PHPscriptet menar du då eller?

När jag gör det så skrivs bara raden "env > /cronenv" ut när scriptet körs.

Mitt fel, tänkte fel, skulle just rusa till lunch också. Det ska inte in i PHP-scriptet utan in i crontaben, ala:
*/2 * * * * root env > /cronenv

qw q b

Trädvy Permalänk
Medlem
Plats
Karlstad
Registrerad
Apr 2005

Ursäkta mig!
Det var inte detta som var fel xD
Felet låg på en annan rad i min crontabfil och därför kördes inte någon av mina crontabs. Nu funkar det iaf som det ska

Tack så mycket för att ni försökte hjälpa mig ändå!

Bloggar om Hemautomation på HomeAutomateIt.com