Lars H. Skrevet 28. mars 2006 Del Skrevet 28. mars 2006 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
ZiZe Skrevet 1. april 2006 Del Skrevet 1. april 2006 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
Lars H. Skrevet 2. april 2006 Forfatter Del Skrevet 2. april 2006 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
ZiZe Skrevet 6. april 2006 Del Skrevet 6. april 2006 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
Lars H. Skrevet 6. april 2006 Forfatter Del Skrevet 6. april 2006 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
ZiZe Skrevet 6. april 2006 Del Skrevet 6. april 2006 Jeg fant tak i noen som hadde en phpinfo() side liggende på servetheworld, og de har ikke kompilert php med "--enable-cli" som jeg skrev i mitt første innlegg. eneste mulighetene jeg ser da, er at du må bruke det slik du hadde først, med "30 * * * * wget -q http://hjemmesidenmin.com/diverse/diversejob.php" eller skriver det i et annet scriptspråk som støtter command line tolking. Lenke til kommentar
Lars H. Skrevet 7. april 2006 Forfatter Del Skrevet 7. april 2006 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
???????? Skrevet 10. april 2006 Del Skrevet 10. april 2006 Hei, hvis du kjører et PHP script via crontab(cronjob) så må du faktisk kjøre det i PHP. Vet du hvor php er plassert på serveren? Du kan forsøke: 30 * * * * /usr/local/bin/php -q -f /home/public/hjemmesi/hjemmesidenmin.com/diverse/diversejob.php Lenke til kommentar
dayslepr Skrevet 13. april 2006 Del Skrevet 13. april 2006 den går å skrive whereis php for å sjekke hvor den ligger (i det minste om tolkeren ligger i PATH-variabelen; tror jeg) Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå