Permalänk
Medlem

Cronproblem på Raspbian

Hej där.

Jag försöker få cron att snurra på min raspbian, men jag är ute och klampar i okänt vatten och vet inte vad jag gör för fel.

Efter lite meck har jag fått ordning på klockan åtminstone:

pi@386pi ~ $ date Thu Oct 1 18:07:24 CEST 2015

Gjorde det genom att lägga in detta i .profile:

TZ='Europe/Stockholm'; export TZ

Så... då när jag lägger in i crontab så borde jag väl referera till den tiden?

Min crontab ser ut såhär nu i testsfasen:

pi@386pi ~ $ crontab -l 07 18 * * * tdtool -n 1 > /dev/null 2>&1

Vilket jag tycker borde ha betytt att den anropat tdtool kl 18:07 som i sin tur tänt mina utelampor, men det gjorde den inte.

Kör jag bara tdtool -n 1 så funkar det fint.

pi@386pi ~ $ tdtool -n 1 Turning on device 1, Outside lights - Success

Snälla hjälp, vad är det jag missar?

Permalänk
Inaktiv

@rool
Vad händer om du kör följande:

7 18 * * * tdtool -n 1 >/dev/null 2>&1

Permalänk
Medlem

Tack för tipset, men det blev ingen skillnad.

Körde

31 18 * * * tdtool -n 1 >/dev/null 2>&1

Kan jag få den att skriva ut det den tänkt göra i terminalen?

Permalänk
Medlem

Har du kollat i /var/log/syslog ? Finns tdtool i $PATH för den användare(root?) som cron använder?

Permalänk
Inaktiv
Skrivet av rool:

Tack för tipset, men det blev ingen skillnad.

Körde

31 18 * * * tdtool -n 1 >/dev/null 2>&1

Kan jag få den att skriva ut det den tänkt göra i terminalen?

Det går också. Men känns som en jobbig väg att gå då det skall fungera med cron-jobs. Samt att du fortfarande måste förlita dig på exempelvis cronjobs.

Ta en titt på exemplet på följande länk så ser du grunden till hur du ska göra: http://www.cyberciti.biz/faq/how-to-write-output-to-terminal/

Lägger du till sökvägen i cron-jobbet.
Men ta en titt på vad @Aene skrev också. Kan vara trevligt att felsöka problematiken också än att bara kringgå den.

Permalänk
Medlem

/var/log/syslog har timestamps i UTC, kan det vara något?
Finns inget som visar att cron skulle ha försökt något vid den tidpunkten.

tdtool finns att hitta i $PATH

pi@386pi ~ $ find / -name tdtool /usr/local/bin/tdtool pi@386pi ~ $ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games

Permalänk
Medlem

Var ett tag sedan jag pysslade med cron, men jag har för mig att om kommandot ger någon form av output så skickas det som ett mail till den användare som kör cron-kommandot. Så vad händer om du tar bort ">/dev/null 2>&1" från kommandoraden i cron. Finns det något nytt mail i /var/spool/mail och vad säger det?

Permalänk
Medlem

Nu så, jag ändrade tiderna till UTC och då fick jag en träff i syslog

pi@386pi / $ crontab -l 51 16 * * * tdtool -f 1 >/dev/null 2>&1

pi@386pi / $ cat /var/log/syslog Oct 1 16:51:01 386pi /USR/SBIN/CRON[22603]: (pi) CMD (tdtool -f 1 >/dev/null 2>&1)

Dock utan effekt, men det antar jag beror på något fel i kommandot.

Permalänk
Medlem

Om jag har förstått det hela rätt så är det inte sakert att cron använder samma $PATH som din användare. Mer specifikt så har den inte /usr/local/*-sökvägarna.

Visa signatur

AMD Ryzen 7 5800X | 32 GB Corsair Vengeance 3200 MHz | ASUS TUF Geforce RTX 3080

Permalänk
Medlem

Om du byter ut

>/dev/null 2>&1

mot

>/home/pi/tdtool.log

, vad står det i filen sen?

Skickades från m.sweclockers.com

Visa signatur

Det finns bara två sorters hårddiskar: de som har gått sönder och de som skall gå sönder.

Permalänk
Medlem

Tack alla. Problemet var som @L'ombra konstaterade, att Cron inte kör med samma $PATH som användaren.
Lade till full sökväg + tiderna i UTC så funkade det.

Tack och bock!