Gå til innhold

Problem med å starte php.script i cronjob


Anbefalte innlegg

Hei.

 

I en cron job skulle jeg gjerne ha kjørt et php-script hver natt kl.0030, men får problemer. La oss si at pathen til sidene mine er noe likt dette: /home/public/hjemmesi/hjemmesidenmin.com

 

Dersom jeg da legger scriptet diversejob.php under

hjemmesidenmin.com/diverse/diversejob.php

og forsøker å kjøre en cronjob som:

30 * * * * /home/public/hjemmesi/hjemmesidenmin.com/diverse/diversejob.php

får jeg feilmeldingen 'Permission denied'.

Det samme får jeg dersom jeg skriver:

30 * * * * hjemmesidenmin.com/diverse/diversejob.php

 

Legger jeg scriptet på topp, altså:

30 * * * * /home/public/hjemmesi/diversejob.php

eller

30 * * * * diversejob.php

får jeg feilmeldingen 'command not found'

 

Nå er det en stund siden jeg har vært borti Unix, så jeg trenger hjelp til dette.

I mellomtiden kjører jeg via. wget på denne måten:

30 * * * * wget -q http://hjemmesidenmin.com/diverse/diversejob.php

Og dette fungerer.

 

Lars H.

Lenke til kommentar
Videoannonse
Annonse

forandre cronscriptene dine slik at du har

 

#!/usr/bin/php
<?php
//kode her
?>

 

og

kjører en "chmod +x " på alle cronscriptene skal dette fungere uten at noe er galt i crontaben din.

Har du kompilert kjernen uten "--enable-cli" må du rekompilere med dette valget.

Har du bare installert en ferdig binary er dette valget default så da er alt bra.

Lenke til kommentar

Hei.

 

Takk for svar, men dette var "gresk" for meg. Saken er at jeg har en hjemmeside, sagaforumet.com liggende hos ServeTheWorld. Jeg har fått tilgang til å legge inn cron der via SSH. Så dette er ikke på egen maskin.

 

I cronjobben lager jeg først en backup av databasen til forumet vha. mysqldump og gzip. Denne backupen er det jeg så ønsker å få sendt til meg selv som vedlegg til en mail. Det er det php-scriptet gjør. Kanskje det er en Unix-kommando som også kunne ha gjort det? Ville jo vært mer elegant enn å benytte php! Men noe slikt har jeg altså ikke funnet.

 

Så får jeg gjette litt hva du har ment. Skal jeg lagre php-scriptet mitt med navnet php under /usr/bin/ ? Og hvordan gjør jeg så det?

 

Og linjen min i crontab, vil den da bli slik: 30 * * * * /usr/bin/php ?

 

Hvordan kjører en "chmod +x " på alle cronscriptene?

 

Da jeg kun har websidene mine på denne serveren, vet jeg ikke hvordan kjernen er kompilert.

 

Så kanskje jeg bare skal la det hele være slik det er? Det fungerer jo med wget, bortsett fra at det hver gang scriptet kjøres legges en tom fil med samme navn som php-scriptet på /home/public/hjemmesi/ som jeg må slette med rm i en ny linje i crontab.

 

Lars H.

Lenke til kommentar

Heisann.

 

Det jeg mener er at du må legge til den linjen der øverst i alle scriptene dine som skal kalles opp via crontaben.

/usr/bin/php er da stien til php.

 

så legg til

 

#!/usr/bin/php i toppen av alle php scriptene du bruker som cron tasks.

dette _må_ stå helt øverst i php filen, over <?php.

 

sampleCron.php

#!/usr/bin/php
<?php
//mitt cronscript
$mailTo = '[email protected]';
$mailSubject = 'En testmail';
$mailFrom = '[email protected]';

$mailBody = "En testmail \r\n";
$mailbody.= date("H:i:s d/m/Y, time()) ."\r\n";

mail($mailTo, $mailSubject, $mailBody, "From: ". $mailFrom ."\r\n");
?>

chmod +x sampleCron.php

 

så skal alt funke fint.

 

en ting til jeg vil anbefale er og plassere cron task scriptene utenfor webpath så ikke hvem som helst kan kalle dem opp.

 

chmod +x <script>.php på alle cron task scriptene, dette gjør du da via terminalen når du har ssh'et inn til serveren.

<> skal ikke være med.

Lenke til kommentar

Hei.

 

Jeg maser nok litt nå, men det hadde nå vært greit å få til dette da. Så jeg spør pent om mer hjelp.

 

Har nå lagt #!/usr/bin/php på toppen i php-scriptet og chmod'et skripet til execute. Men php-pathen stemmer tydeligvis ikke? Skriver jeg ls /usr/bin/php, får jeg meldingen: No such file or directory. Og kaller jeg opp selve php-scriptet fra kommandolinjen, får jeg: /usr/bin/php: bad interpreter: No such file or directory.

 

Så, hva nå?

 

Lars H.

Lenke til kommentar

Hei igjen.

 

Da får jeg bare takke så mye for hjelpen. Selv om jeg ikke kommer lenger, har jeg lært mye av dette. Og i og med at wget funker, så har jeg nå en god mulighet til å få forumet på fote igjen om det på ny skulle bli hacket.

 

Så takk igjen.

Lars H.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...