Permalänk
Medlem

Hjälp med bash-script

Hejsan, jag undrar lite över hur jag kan göra så att mitt bash-script kontrollerar hur gammal en fil är och om den är äldre än 12 h ska den hämtas igen.

Typ:

if (fil.html > 12h) wget http://server.ru/fil.html else echo "INGET!"

Permalänk
Inaktiv

Är det inte lättare att hämta den var 12:e timma från cron?

0 0-24/12 * * * wget http://server.ru/fil.html

Notera att den endast kommer att hämtas klockan 0 och 12 med denna rad...

Permalänk
Medlem

Lite hjälp på vägen:

date +%s ger unixtime just nu.
stat -c%Y fil ger modifikationsdatum i unixtime
12h = 12*60*60 = 43200s

Visa signatur

Stolt användare av en ibook 300 MHz (dasslocket)

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av mickeus
Är det inte lättare att hämta den var 12:e timma från cron?

0 0-24/12 * * * wget http://server.ru/fil.html

Notera att den endast kommer att hämtas klockan 0 och 12 med denna rad...

Jo så hade man ju också kunnat göra, men detta var det sätt jag tänkte på först. Och ärligt talat så har jag haft problem med att försöka lägga till cron-job.

Citat:

Ursprungligen inskrivet av zypher_X
Lite hjälp på vägen:

date +%s ger unixtime just nu.
stat -c%Y fil ger modifikationsdatum i unixtime
12h = 12*60*60 = 43200s

Ok, såhär fick det bli;

nu=`date +%s` fil=`stat -c%Y fil.html` alder=`echo $nu-$fil|bc` if [ $alder -gt 43200 ] then wget http://server.ru/fil.html fi

Finns säkerligen vettigare och snyggare sätt att göra det men...

EDIT: BTW, tack för svaret zypher_X.

Permalänk
Medlem

Troligtvis så kommer den bli äldre än 12h

Så ett cron-jobb som tar ner den varje dygn hade nog gjort sig bättre.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av maDa
Troligtvis så kommer den bli äldre än 12h

Så ett cron-jobb som tar ner den varje dygn hade nog gjort sig bättre.

Fast jag vill bara hämta den när det verkligen behövs. Den används bara när scriptet körs så det gör inget om den blir mer än 12 h gammal ibland. Så länge som scriptet uppdaterar den innan scriptet använder den är det ok.