Sida 1 av 1

Symlink problem tillsammans med Cron [LÖST]

Postat: 18 sep 2010, 20:01
av CirruZZ
Jag har ett ytterst skumt problem som gäller en symlink tillsammans med cron. jag har skappat en symlink enligt...

Kod: Markera allt

sudo ln -s /opt/rrdtool-1.4.4/bin/rrdtool /usr/local/bin/rrdtool
syftet med länken är att slippa skriva sökvägen till rrdtool varje gång. Det funkar utmärkt i bash. Jag har en del script som körs med hjälp av cron och i dom skripten så används rrdtool för att uppdatera några rrd-filer.

Om jag kör scripten själv i bash så funkar dom, rrd-filerna uppdateras som dom ska. MEN, när scripten körs via cron så funkar det inte! Jag har testat att ändra i scripten så att hela sökvägen finns till rrdtool och DÅ funkar det. Dvs något fel är det med min symlink.

Cron uppgifterna ligger för användaren root. Jag kan köra scripten i bash både via vanlig användare och via root (sudo) med gott resultat, men med cron för root vill det sig inte.

Jag hittar inge fel i /var/log/syslog men jag ser att cron jobben går som dom ska.

Tipps någon?

Re: Symlink problem tillsammans med Cron

Postat: 18 sep 2010, 20:10
av Konservburk
Det är miljövariablerna som ställer till det för dig. Under cron är miljön ytterst sparsam och variabeln $PATH innehåller då inte /usr/local/bin, vilket du verkar anta att den gör.

Re: Symlink problem tillsammans med Cron

Postat: 18 sep 2010, 20:17
av CirruZZ
aha...kan det vara så! ::)

Så vad föreslår du?

Glömde skriva att det gäller server 10.04.

Re: Symlink problem tillsammans med Cron

Postat: 18 sep 2010, 20:23
av Konservburk
Jag föreslår att du lägger till /usr/local/bin till $PATH i början av ditt skript:

Kod: Markera allt

#!/bin/bash
PATH="/usr/local/bin:$PATH"

Re: Symlink problem tillsammans med Cron

Postat: 18 sep 2010, 20:33
av CirruZZ
ok.

det finns inget sätt att lägga till en till PATH för cron miljön.

kan tilläggas att i tidigare versioner av ubuntu server så har det funkat, har nyligen bytt till 10.04.

Re: Symlink problem tillsammans med Cron

Postat: 18 sep 2010, 20:50
av Konservburk
Du kan sätta $PATH direkt i crontab-filen om du vill:

Så att den gäller för alla cron-jobben:

Kod: Markera allt

PATH=/usr/local/bin:/usr/bin:/bin
* * * * * cron_job_A.sh
* * * * * cron_job_B.sh
Eller bara för vissa specifika cron-job:

Kod: Markera allt

* * * * * cron_job_A.sh
* * * * * PATH=/usr/local/bin:/usr/bin:/bin cron_job_B.sh

Re: Symlink problem tillsammans med Cron

Postat: 18 sep 2010, 21:02
av CirruZZ
Det där gjorde susen! :) Nu funkar det ju utan att jag måste in och ändra i scripten.

Tusen tack för strålande hjälp!! Case closed!