Hjälp med Crontab

Tråden skapades och har fått 3 svar. Det senaste inlägget skrevs .
1

Hej,

För att slippa att skriva in "ruby /Users/tv/eyetv_xmltv_grabber.rb" direkt i terminalen manuellt så sitter jag och försöker få ordning på min crontab, men det vill inte riktigt fungera lika bra som när jag kör allt manuellt i terminalen.

Detta har jag gjort:

1) Kört igång terminalen med sudo

2) Eftersom jag föredrar nano, så skrev jag in

"export EDITOR=/usr/bin/nano"

3) Sedan skrev jag in

"crontab -e"

4) Väl inne i nano för en temp-fil fyllde jag in följande:

* */15 * * * ruby /Users/tv/eyetv_xmltv_grabber.rb

5) Sparade filen
6) Kontrollera allt genom att skriva

"crontab -l"

Fick som svar:

* */15 * * * ruby /Users/tv/eyetv_xmltv_grabber.rb

Så allt såg bra ut tyckte jag... men detta fungerar tyvärr inte, den verkar aldrig köra min crontab. Vad har jag gjort fel? Gillar inte Mac OS när jag skriver in */15?

Tack på förhand...

Troligen finns inte sökvägen till ruby med i det environment som cronjobbet körs i. Prova att skriva in hela sökvägen till ruby och se om det hjälper.

* */15 * * * /usr/sbin/ruby /Users/tv/eyetv_xmltv_grabber.rb

Fördelen med att editera sin crontab med commandot crontab är att man får en syntaxcheck innan den sparas, så det skall vara OK att använda /15 eftersom du inte får något felmeddelande. Men för att verifiera att cronjobbet exekveras kan du ju alltid göra på detta sättet och sedan kolla att filen skapas i /tmp på önskade klockslag

* */15 * * * echo /usr/sbin/ruby /Users/tv/eyetv_xmltv_grabber.rb > /tmp/crontest

Du kriver också att du kört igång terminalen med sudo, vad menar du då? Cronjobbet skall läggas in in den användares crontab som skall exekvera det. Är det som din normala användare är inte sudo involverat öht, och är det root som skall köra det så är det root:s crontab du skall editera. Förslagsvis kör du då innan du editerar crontaben:

sudo su -
Ursprungligen av carpelux:

Troligen finns inte sökvägen till ruby med i det environment som cronjobbet körs i. Prova att skriva in hela sökvägen till ruby och se om det hjälper.

* */15 * * * /usr/sbin/ruby /Users/tv/eyetv_xmltv_grabber.rb

Fördelen med att editera sin crontab med commandot crontab är att man får en syntaxcheck innan den sparas, så det skall vara OK att använda /15 eftersom du inte får något felmeddelande. Men för att verifiera att cronjobbet exekveras kan du ju alltid göra på detta sättet och sedan kolla att filen skapas i /tmp på önskade klockslag

* */15 * * * echo /usr/sbin/ruby /Users/tv/eyetv_xmltv_grabber.rb > /tmp/crontest

Du kriver också att du kört igång terminalen med sudo, vad menar du då? Cronjobbet skall läggas in in den användares crontab som skall exekvera det. Är det som din normala användare är inte sudo involverat öht, och är det root som skall köra det så är det root:s crontab du skall editera. Förslagsvis kör du då innan du editerar crontaben:

sudo su -

Strålande! Riktigt bra svar! Ska testa detta ikväll! Tack

Jag ser när jag läser lite mer noga att du verkar ha en användare som heter tv. Är detta en speciell användare för din tv-funktion är det ju bättre att lägga cronjobbet på denna användare.
Kör då

sudo su - tv

innan du editerar crontaben. Dessutom bör du köra

/usr/sbin/ruby /Users/tv/eyetv_xmltv_grabber.rb

manuellt för att verifiera att det inte är något strul med rättigheter på filer eller liknande.

1
Bevaka tråden