webForumDet fria alternativet

Chron job

18 svar · 557 visningar · startad av lillebror

lillebrorMedlem sedan apr. 20041 597 inlägg
#1

Hejsan! :)

Det är så här. Jag har ett webbhotell som erbjuder möjligheten att använda Chronjob för schemaläggning av aktiviteter. De har ett grafiskt interface där man gör tidsinställningarna vilket är bra.

Sedan finns det en rad som heter "command" där man helt enkelt om jag förstått det rätt skall fylla i absoluta sökvägen till exempel.php som man vill ska köras. Nu fungerar inte detta för mig och jag tänkte att man kanske ska skriva "chron job u:\sökväg?

Jag är ingen kung på linux så jag vet inte. Någon som har en hint? :) Eller är det så att denna php-fil måste ligga i cgi-bin-katalogen som finns i min root-nivå på webbhotellet?

GeinMedlem sedan sep. 20005 700 inlägg
#2

Det spelar ingen roll vart php-filen ligger. Du ska inte skriva "cron job " i kommando-fältet (så till vida inte webbhotellet uttryckligen säger det). Ta reda på sökvägen till php och skriva sedan: "/sökvägen/till/php sökvägen/till/php-skript.php".
Det ska fungera

dhoMedlem sedan aug. 20022 027 inlägg
#3

Du vill alltså att PHP ska köra innehållet i php-filen? I sådana fall måste du först ange sökvägen till php-binären och som argument sökvägen till den php-fil du vill köra.

lillebrorMedlem sedan apr. 20041 597 inlägg
#4

dho skrev:

Du vill alltså att PHP ska köra innehållet i php-filen?

Helt rätt. Php skall köra min min php-fil! :)

dho skrev:

I sådana fall måste du först ange sökvägen till php-binären och som argument sökvägen till den php-fil du vill köra.

Vad är php-binären? Är det samma sak som cgi-bin? Hur skulle det kunna se ut om du skrev ut ett exempel på det (argument och sökväg)? :OO E inte alls haj på linux!

Mvh

JosefMedlem sedan mars 20023 561 inlägg
#5

lillebror skrev:

Vad är php-binären?

Gissar på att det är själva php-motorn.

lillebrorMedlem sedan apr. 20041 597 inlägg
#6

Är det någonting i stil med detta man ska skriva som "command":

/usr/local/bin/php -f /home/användare/public_html/fil.php

OlleBoopMedlem sedan feb. 20001 861 inlägg
#7

Jepp

lillebrorMedlem sedan apr. 20041 597 inlägg
#8

Fick svar från min support förut.

Supporten ser följande i sin crontab-logg:

support skrev:

Mar 31 11:27:00 baltazar /usr/sbin/cron[63231]: (användare) CMD (/usr/local/bin/php -f /home/sökväg/public
_html/fil.php)

"Det ser rätt ut.
Enligt crontab-loggen så har kommandot utförts." säger supporten.

support skrev:

Det du bör göra när du exekverar kommandot är att styra eventuell output från kommandot från stdout till en fil istället, exempel:

/usr/local/bin/php -f /home/sökväg/public_html/fil.php >/home/sökväg/public_html/fetch.out
På så sätt kan du kontrollera filen fetch.out för eventuella felmeddelanden.

Det enda jag får ut ur filen fetch.out är "No input file specified." Vad är problemet här?

support skrev:

Du kan även skriva ut statusmeddelanden med echo-kommandot i ditt script som då hamnar i fetch.out.

Hur skriver man detta kommando och i vilken fil? :)

OlleBoopMedlem sedan feb. 20001 861 inlägg
#9

Funkar fil.php om du kör den direkt?
Felmeddelandet du får i fetch.out kommer från fil.php

lillebrorMedlem sedan apr. 20041 597 inlägg
#10

Manuellt kan jag exekvera filen utan problem! Filen i sig hämtar data från en annan sida som jag stoppar in i min databas två gånger per timme...

Felmeddelandet kommer från fetch.out...

pimmeMedlem sedan sep. 20011 086 inlägg
#11

testa "/usr/local/bin/php -f /home/sökväg/public_html/fil.php >/home/sökväg/public_html/fetch.out"

dvs, med " " runt.

lillebrorMedlem sedan apr. 20041 597 inlägg
#12

om jag har förstått det hela rätt så är det kommando man anger det som man normalt skulle ha skrivit från en linuxprompt. blir det rätt då med fnuttarna (")?

GeinMedlem sedan sep. 20005 700 inlägg
#13

Det ska inte vara citationstecken. Har du tillgång till ett terminalfönster? Har du isåfall provat skriva
/usr/local/bin/php -f /home/sökväg/public_html/fil.php >/home/sökväg/public_html/fetch.out
och se vad som händer då?

red/ Av ditt felmeddelande att döma verkar det onekligen som att sökvägen till ditt php-skript är felaktigt. Har du dubbelkollat det?

lillebrorMedlem sedan apr. 20041 597 inlägg
#14

Gein skrev:

Det ska inte vara citationstecken. Har du tillgång till ett terminalfönster?

Nej, i och med att jag använder en kontrollpanel som heter DirectAdmin (ett gränssnitt för inställningar i linux) så kommer jag EJ åt linuxprompten. I mitt gränssnitt tillåts jag endast ange tidsintervall och den kommandorad jag vill ska exekveras!

Gein skrev:

Har du isåfall provat skriva
/usr/local/bin/php -f /home/sökväg/public_html/fil.php >/home/sökväg/public_html/fetch.out
och se vad som händer då?

Supportkillen på Aleborg svarade på ett mail jag skrivit och enligt honom fungerade allt bra. Dvs fetch.out genererades men det fanns ju inget intressant innehåll i den så när som på att det stod "No input file specified". När jag själv lägger till vad som enligt honom är rätt kommandorad så genereras det ju ingen fetch.out med en ny tidsstämpel vilket innebär att fetch.out kvarstår sedan supportkillen testade. Hmmm... :OO

Gein skrev:

ed/ Av ditt felmeddelande att döma verkar det onekligen som att sökvägen till ditt php-skript är felaktigt. Har du dubbelkollat det?

Supportkillen bekräftade att det var rätt sökväg...

GeinMedlem sedan sep. 20005 700 inlägg
#15

lillebror skrev:

Supportkillen bekräftade att det var rätt sökväg...

Jag har pratat med den person du pratade med och jag tror det blev missförstånd. Han menade att kommandoraden var rätt, sen om sökvägen till skriptet var riktig eller inte är en annan sak.

Kontrollera sökvägen "/home/sökväg/public_html/fil.php" igen. Den stämmer uppenbarligen inte.

lillebrorMedlem sedan apr. 20041 597 inlägg
#16

När jag letat runt efter information om cronjob på nätet läste jag något om att man alltid måste ange absoluta sökvägar för att det ska fungera. Stämmer det? Om det skulle vara så så är min sökväg fel. Men nu fick jag den sökväg som börjar med /home/...bekräftad av personen jag pratade med och trodde då att det skulle stämma...

Hur som helst...ska kolla upp sökvägen en gång till!

lillebrorMedlem sedan apr. 20041 597 inlägg
#17

Nu fungerade det...det hade att göra med sökvägen... MY MISTAKE! :r

Här är ett litet utdrag ur fetch.out:

fetch.out skrev:

<br />INSERT INTO tblMetar (codeID, metar) VALUES ('ENAL', '
ENAL 311150Z 11002KT CAVOK 09/M02 Q1032=')<br />INSERT INTO tblMetar (codeID, metar) VALUES ('ENAN', '
ENAN 311150Z 24018KT 210V280 9999 FEW010 BKN020 05/02 Q1025 TEMPO
3000 SHRA BKN010 =')<br />INSERT INTO tblMetar (codeID, metar) VALUES ('ENAT', '
ENAT 311150Z 28010KT 9999 FEW025CB SCT035 06/M01 Q1021=')<br />INSERT INTO tblMetar (codeID, metar) VALUES ('ENBN', '
ENBN 311150Z 19004KT CAVOK 08/02 Q1032=')<br />INSERT INTO tblMetar (codeID, metar) VALUES ('ENBO', '

Vilket då bevisar att allt fungerar! Hurra!

Tack så jättemycket för hjälpen! :birp

GeinMedlem sedan sep. 20005 700 inlägg
#18

Du måste ange absoluta sökvägar till dina skript. Du behöver inte ange absoluta sökvägar till binärer som finns i PATH-variabeln (rätta mej nu om jag har fel). Men det skadar aldrig att alltid använda absoluta sökvägar för att vara helt säker. Men som sagt, för sökväg till egna skript så måste du alltid ange den absoluta sökvägen.

red/ Markera även tråden som löst (för framtidens skull) :)

lillebrorMedlem sedan apr. 20041 597 inlägg
#19

Så bra, då har jag stenkoll på det till nästa gång!

145 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)