Avatar billede the_saint Nybegynder
24. marts 2010 - 08:43 Der er 11 kommentarer og
1 løsning

Logning af output fra crontab (wget)

Hej Experter :)

Jeg står og skal til at flytte alle mine crontabs fra cronjob.de til min nyerhvervede VPS som kører Debian.

På cronjob.de bliver der ført log over alle cronkaldende, det er super lækkert - og kunne godt tænke mig noget lign på min debian server.

Er det muligt at få den til at kalde en URL (kunne forestille mig at det skulle være vha. wget?) og så gemme output i en log fil i dette format:

24-03-2010 08:42:59
OK (output)
-----------------------------------------

24-03-2010 08:34:23
OK (output)
-----------------------------------------

etc...

Mvh.
Mikkel
Avatar billede lassebm Nybegynder
24. marts 2010 - 09:11 #1
Det du ønsker altså, er det cronjob, der skal eksekvere et script der ligger online et sted?
Avatar billede the_saint Nybegynder
24. marts 2010 - 09:20 #2
Ja..

Godt nok ligger de fysisk samme sted på serveren, så kunne også sagtens lave det ved at køre php direkte, og derfor ikke køre igennem Apache - der burde vel være en performance forbedring der.

Alt det med at tilføje crontabbet, og hvornår det skal køre har jeg helt styr på, jeg kan også sagtens få den til at kalde mit script og køre det som forventet - men det er selve logningen som er problemet :)

Altså det med at den skal lave en log fil, med timestamp og output :)
Avatar billede lassebm Nybegynder
24. marts 2010 - 09:38 #3
Det gør du "bare" i selve cron jobbet.

eksempel:
echo `date` "Cronjob complete" >> cron.log

Om du skriver det i selve cron, eller i et script der eksekveres fra cron er ligegyldigt.
Avatar billede lassebm Nybegynder
24. marts 2010 - 09:40 #4
Du kan også smide det ind i SQL (via cronscript), og hente direkte fra PHP via mysql queries, eller indlæse log filen via php kode.
Avatar billede the_saint Nybegynder
24. marts 2010 - 10:12 #5
Problemet er at jeg har haft problemet med at den ikke lavede newlines ordentligt, selvom jeg bruge >>

echo `date` >> cron.log; echo {output} >> cron.log; echo "" >> cron.log;

Hvordan får jeg eks wget til at outputte resultatet, uden al dens fileinfo etc. og uden at gemme det som en fil?
Avatar billede lassebm Nybegynder
24. marts 2010 - 10:36 #6
Hm. Godt spørgsmål, så skal du nok ud i at bruge sed og awk til at konvetere outputtet! (Ikke noget jeg er så stærk i)
Avatar billede the_saint Nybegynder
15. april 2010 - 06:39 #7
Nogle som har nogen foreslag?
Avatar billede lars_ Nybegynder
25. april 2010 - 18:04 #8
Skal den "bare" skrive http-statuskode, en dato, og en linie?
Avatar billede the_saint Nybegynder
25. april 2010 - 18:23 #9
Jeg vil gerne have sådan et format her :)

24-03-2010 08:42:59
There was found 3 errors:
No email set for xxx
No setting set for yyy
No email set for zzz
-----------------------------------------

24-03-2010 08:34:23
No errors found
-----------------------------------------
Avatar billede lars_ Nybegynder
25. april 2010 - 19:57 #10
Har du ikke mulighed for at ændre output fra php-skriptet? mht "No email set for xxx" osv. Ellers kan du måske bruge "curl". Det er ret fleksibelt. Se evt dette eks:
curl --write-out "%{http_code}\n" -s http://www.lfweb.dk/cron.php

Det eksekverer php filen, og skriver "200" til stdout. Der er mange flere muligheder f.eks at gemme hele den html der returneres, og f.eks få mere statistik på overførslen.

mvh Lars
Avatar billede the_saint Nybegynder
25. april 2010 - 20:19 #11
Jo, kan sagtens ændre output i phpfilerne, men hvad så hvis der er en ukendt fejl 500, firewall setting eller hvad som helst, som gør at jeg ikke får fat i PHP filen - derfor jeg gerne ville have cron til at logge det.

curl lyder som et bedre alternativ end wget.. Får en blank side på det link.
Avatar billede the_saint Nybegynder
18. august 2010 - 13:25 #12
Ingen løsning fundet på mit problem, lukker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester