Torbjørn Skrevet 3. juni 2004 Del Skrevet 3. juni 2004 Findus: hvordan hadde du tenkte han skulle kjøre dette skriptet på webserveren sin da? Med mindre han har ssh tilgang der (isåfall kan han bruke hva han vil av tilgjengelige programmeringsspråk) så er det per def umulig å komme utenom begrensningene til mod_php, dvs max executiontime etc.. Lenke til kommentar
RogerM Skrevet 3. juni 2004 Forfatter Del Skrevet 3. juni 2004 Til orientering så har jeg SSH, og kan bruke den, men de kommandoer Findus gjerne sikter til er jeg ikke kjent med. Lenke til kommentar
Torbjørn Skrevet 3. juni 2004 Del Skrevet 3. juni 2004 ouh... det var andre boller ja.. kjenner du andre programmeringssrpåk enn php? da er det bedre (mye bedre) å logge på ssh, starte en prosess der som får stå og gå så lenge den vil, (helt til den blir drept av en sur sysadmin) også sjekke den jevnlig, kanskje la den sende en email en gang i døgnet. ta en tur innom perlforumet og beskriv spørsmålet ditt der! php er på grensen til å være direkte dårlig som kommandolinjespråk. Lenke til kommentar
RogerM Skrevet 3. juni 2004 Forfatter Del Skrevet 3. juni 2004 (endret) du har så jevn og stor trafikk til index.html at du vil bruke disse hitene til å trigge din cronjob? pass isåfall på at det ikke tar lang tid! Kjedelig for en besøker å vente i 10 sekunder på å få lastet siden bare fordi du utnytter han til å kjøre cronjobber. Torbjørn, den oppgave main.php her skal utføre, er så enkel og så liten, at den er utført i løpet av 1/10 sekund antar jeg. Du kan faktisk se "prototypen" på main.php her, og hvilken oppgave den skal utføre: http://forum.programmer.no/index.php?showtopic=252106 Det du ser der er likevel kun en nesten ferdig utgave av filen slik den har blitt nå, hvor jeg faktisk kjører filen ved hjelp av autorefresh i min browser, men det er jo en fullstendig uholdbar løsning, da funksjonen går i dass i det øyeblikk jeg kobler meg av nett og går til køys. Så hvis det er mulig å utnytte trafikk til den tidliger omtalte INDEX.HTML som triggerfunksjon for main.php (dog med omtalte validering 60 sekunder), så ville jeg blitt mer enn fornøyd hvis noen kunne hjelpe med å få det til. Dette også fordi jeg er enda MINDRE bevandret i PERL, og vil derved være TOTALT TOTALT GRØNN hvis jeg skulle bevege meg inn på PERL forumet som du foreslår. Det vil utsette dere for tålmodighetsprøver på linje med far og mor som skal lære sin baby og si "mamma og pappa" Så hvis noen kan hjelpe meg å få det til i php, så vil jeg selvsagt være enormt taknemlig for det. Kommer jeg inn i PERL forumet vil dere kanskje rive av dere håret i frustrasjon? Mvh Roger Endret 3. juni 2004 av RogerM Lenke til kommentar
Gilbert Skrevet 3. juni 2004 Del Skrevet 3. juni 2004 forslag: rename index.html til index.php og sett inn følgende snutt index.php <?php // KOBLE TIL MYSQL $tid = time()-60; if (mysql_result(mysql_query("SELECT sist_oppdatering FROM fake_crown"),0, "sist_oppdatering") < $tid) { include "main.php"; mysql_query("UPDATE fake_crown SET sist_oppdatering='".time()."'") || die(mysql_error()); } ?> (Har ikke testet) Lenke til kommentar
RogerM Skrevet 3. juni 2004 Forfatter Del Skrevet 3. juni 2004 (endret) Fjartan, desverre, jeg kan ikke rename INDEX.HTML til index.php, da den egentlig er en SSI generert index.SHTML Sorry jeg glemte å si det. Jeg omtalte den bare som index.HTML for å skille den fra den oppgave jeg egentlig er ute etter å løse med main.php, og tenkte da at det måtte være mulig å implementere et kall til main.php også fra en index.SHTML fil(eller *.HTML) uten å omgjøre den til *.php Huff :-) Dessuten foreslår du en løsning som vil kreve at jeg får tilgang til å modifisere REMOTE DATABASE med å tilføye en fake_crown tabell, og det har jeg selvsagt ikke mulighet til. Jeg har kun lesetilgang i REMOTE DATABASE. Roger Endret 3. juni 2004 av RogerM Lenke til kommentar
Torbjørn Skrevet 3. juni 2004 Del Skrevet 3. juni 2004 kan du si med ord det du ønsker at cronjobben skal gjøre, istedet for å vise til kode som gjør det? ie "hente ut html fra en side og skrive det til en lokal kopi" eller noe lignende. Lenke til kommentar
RogerM Skrevet 3. juni 2004 Forfatter Del Skrevet 3. juni 2004 kan du si med ord det du ønsker at cronjobben skal gjøre, istedet for å vise til kode som gjør det? ie "hente ut html fra en side og skrive det til en lokal kopi" eller noe lignende. Torbjørn DETTE ER HVA JEG TRENGER HELP TIL cronjobben skal kun hvert 60 sekund aktivere en php fil ved navn f.eks main.php. Dette er det ENESTE jeg trenger hjelp til å få til. DETTE TRENGER JEG IKKE HJELP TIL, da filen main php er ferdig kodet og virker som den skal main.php tar seg av den oppgave som skal utføres, altså hente data fra en REMOTE dabase og skrive ut innholdet til en *html fil. Alt jeg trenger hjelp til er å få kjørt main.php i faste intervaller på 60 sekunder, altså noe som erstatter den funksjon en cronjob ville kunne utføre for meg med hensyn til å aktivere main.php hvert 60 sekund Håper dette var enkelt formulert? Roger Lenke til kommentar
RogerM Skrevet 3. juni 2004 Forfatter Del Skrevet 3. juni 2004 Oupss Torbjørn....kanskje jeg misforsto deg? Ville du konvertere main.php til perl kode, og derved trenger info fra meg hva main.php faktisk skal utføre? Lenke til kommentar
RipZ- Skrevet 3. juni 2004 Del Skrevet 3. juni 2004 Om du har SSH-tilgang, er det ikke da mulig å kjøre et script med en uendelig loop. Ved å sette max_execution_time = 0, vil du heller ikke ha noe problem med at scriptet timer ut. Et PHP script kjøres så lenge browseren opprettholder kontakten. Det er derfor ikke noen god løsning det du først foreslo. En evigvarende prosess som hele tiden opprettholder kontakten med php-scriptet, vil la scriptet kunne leve evig. Uansett, en evigvarende prosess på en webserver er sjeldent noe hostene liker. Kanskje noen er så snille at de kan kjøre en cronjob for deg? Om ikke dette er en løsning, vil jeg anbefale å bruke løsningen lumted nevnte. Lenke til kommentar
Torbjørn Skrevet 3. juni 2004 Del Skrevet 3. juni 2004 (endret) ok, her er den ultimate løsningen: 1) log på med ssh 2) lag en fil som heter "myfile.bash" 3) putt følgende inn i fila: while true; do echo `date`; wget --delete-after http://adresse/til/din/main.php; sleep 60; done 4) skriv screen 5) skriv bash myfile.bash 6) trykk tastene ctrl+a og deretter d 7) len deg tilbake og nyt livet Endret 3. juni 2004 av Torbjørn Lenke til kommentar
RogerM Skrevet 3. juni 2004 Forfatter Del Skrevet 3. juni 2004 Lumted foreslår meg en løsning med å legge til en timestamp i databasen. Dette ville vært ok om databasen var lokal (min), men desverre snakker vi her om en remote database hvor jeg kun har lesetilgang. Og det er heller ingen løsning å få eieren til å modifisere databasen ved å tilføye timestamp, da dette jo ikke reduserer hans båndbredde krav, som sier at han ikke vil ha kall til databasen oftere enn hvert 60 sekund. Lenke til kommentar
Torbjørn Skrevet 3. juni 2004 Del Skrevet 3. juni 2004 du kan siden logge på med ssh og skrive screen -r for å se hvordan det går. ctlr+a og d vil deretter koble fra og du kan logge ut (detach) Lenke til kommentar
RogerM Skrevet 3. juni 2004 Forfatter Del Skrevet 3. juni 2004 ok, her er den ultimate løsningen: 1) log på med ssh 2) lag en fil som heter "myfile.bash" 3) putt følgende inn i fila: while true; do echo "kjører phpfil...\n"; wget --delete-after http://adresse/til/din/main.php; sleep 60; done 4) skriv screen 5) skriv bash myfile.bash 6) trykk tastene ctrl+a og deretter d 7) len deg tilbake og nyt livet Torbjørn Dette ser jo fantastisk bra og enkelt ut Kan du forklare i detaljer hva den kommandostrengen egentlig utfører, så jeg vet mer i detaljer hva jeg kan forvente av reaksjoner kommentarer fra sysadmin? Roger Lenke til kommentar
Torbjørn Skrevet 3. juni 2004 Del Skrevet 3. juni 2004 han vil se at du har en prosess som står og går og som har gått i flere dager og han vil lure på hva i all verden dette er for noe. han vil så titte i myfile.bash og skjønne hva som skjer og si enten "ok", eller "din hacker satan" og konsekvensene blir deretter mulig du ikke har screen installert. isåfall får du kjøre nohup bash myfile.bash Lenke til kommentar
Torbjørn Skrevet 3. juni 2004 Del Skrevet 3. juni 2004 (endret) kommandostrengen skriver ut datoen og deretter surfer den til din phpside. så venter den 60 sekunder før den gjør det hele en gang til. merk at jeg gjorde noen endringer i koden etter at du svarte Endret 3. juni 2004 av Torbjørn Lenke til kommentar
RogerM Skrevet 3. juni 2004 Forfatter Del Skrevet 3. juni 2004 Hehe....dette må bare prøves, får håpe sysadmin er snill med meg, jeg hoster vel over 15 ulike websites fordelt på separate kontoer der, så jeg er nok en av de over middels store kunder der. Får satse på at han ikke vil miste meg :-) Mange takk Torbjørn Dog kommer jeg tilbake og plager dere senere, om jeg ikke får det til å virke :-) Mvh Roger Lenke til kommentar
Torbjørn Skrevet 3. juni 2004 Del Skrevet 3. juni 2004 ok, jeg tar kvelden, men det er sikkert mange andre som kan hjelpe deg her. Lenke til kommentar
RogerM Skrevet 3. juni 2004 Forfatter Del Skrevet 3. juni 2004 Huff Hverken "screen" eller "nohup bash myfile.bash" kommandoene virket De gir meldinga: bash-2.05a$ screen bash: screen: command not found bash-2.05a$ nohup bash myfile.bash bash: nohup: command not found Så er jeg like langt Lenke til kommentar
RogerM Skrevet 3. juni 2004 Forfatter Del Skrevet 3. juni 2004 (endret) huff igjen Jeg kjørte bash myfile.bash direkte i promten, og det hele løp fullstendig løpsk, skjermen ble pumpet full av rullende meldinger i loop, feilmeldinger, så nå står den vel der og går i villa helt til serveren knekker sammen? Må kjappe meg inn på helpdesken for å forklare.....FAEN OG... SLETTA fila myfile.bash, håper dette hjelper til å stoppe den prosessen... Får ikke brukt promten til å sjekke prosesser heller, de har visst disabla en hel rekke kommandoer Roger Endret 3. juni 2004 av RogerM 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å