script för loggning av sensors med crontabs

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
jofors200
Inlägg: 3
Blev medlem: 31 aug 2012, 17:15
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

script för loggning av sensors med crontabs

Inlägg av jofors200 »

Jag har problem med ett script som skall logga temperaturer på CPU och HDD till en fil kontinuerligt.

scriptet ser ut så här :

------

#!/bin/bash

log=/home/autostart/coretemps.log

echo '------------------------------------------------------------------------------------' >> $log
echo `date` -- `sensors | grep 'Core 0'` >> $log
echo `date` -- `sensors | grep 'Core 1'` >> $log
echo `date` -- `hddtemp /dev/sda ` >> $log

------

när jag kör scriptet som 'sudo', så funkar allt som det ska och jag får data i min loggfil enligt :

*****
------------------------------------------------------------------------------------
fre 31 aug+ 2012 16.40.+13 CEST -- Core 0: +85.0°C (high = +78.0°C, crit = +100.0°C)
fre 31 aug+ 2012 16.40.+13 CEST -- Core 1: +84.0°C (high = +78.0°C, crit = +100.0°C)
fre 31 aug+ 2012 16.40.+13 CEST -- /dev/sda: ADATA SX900: 38°C
*****

Men när crontab kör skriptet saknas uppgifterna och bara date-info finns med :

*****

------------------------------------------------------------------------------------
fre 31 aug+ 2012 16.45.+01 CEST --
fre 31 aug+ 2012 16.45.+01 CEST --
fre 31 aug+ 2012 16.45.+01 CEST --

*****

Är det någon som vet vad detta beror på och vad jag kan göra för att fixa det?
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: script för loggning av sensors med crontabs

Inlägg av ubot »

Det mest sannolika är väl att hddtemp och sensors kräver sudo för att fungera? Vad händer om du kör sensors och hddtemp-kommandona i Terminalen utan sudo? Får du något resultat då eller måste du använda sudo för att få något resultat av kommandona? Testa också att köra sensors i verbose-läge, t.ex. med flaggan -u (-u Raw output. This mode is only meant for debugging.).
Om kommadona kräver sudo så kan du lägga in skriptet som ett root cron job med sudo crontab -e eller så kan du ändra så att din användare får köra sensors och hddtemp utan sudo i sudoers file.
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: script för loggning av sensors med crontabs

Inlägg av mcNisse »

job som körs i crontab körs med en mycket begränsad miljö.

Ett enkelt sätt att fixa till skriptet är att skriva in hela sökvägen till programnamnet.
Du kan enkelt hitta fullständiga namn med which

Kod: Markera allt

which hdhtemp
which sensors
which grep
Eller så ser du till att PATH variabeln innehåller det du behöver.
jofors200
Inlägg: 3
Blev medlem: 31 aug 2012, 17:15
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: script för loggning av sensors med crontabs

Inlägg av jofors200 »

Tack mcNisse!

Det var precis så, kommandona hittades inte. jag har modifierat skriptet och nu funkar det :-)


Modifierat script :



#!/bin/bash

log=/home/autostart/systemps.log

echo '------------------------------------------------------------------------------------' >> $log
echo `date` -- `/usr/local/bin/sensors | /bin/grep 'Core 0'` >> $log
echo `date` -- `/usr/local/bin/sensors | /bin/grep 'Core 1'` >> $log
echo `date` -- `/usr/sbin/hddtemp /dev/sda` >> $log
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: script för loggning av sensors med crontabs

Inlägg av ubot »

Om mcNisse har rätt så spelr det väl knappast någon roll om skriptet körs med sudo eller inte heller?
jofors200
Inlägg: 3
Blev medlem: 31 aug 2012, 17:15
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: script för loggning av sensors med crontabs

Inlägg av jofors200 »

Tack för tipset ubot. Jag kör scriptet med root, men hade gärna gjort det med en annan användare. Jag testade ditt förslag med sudoers och lade till raden (sensors kräver ej root) :

%admin ALL=(ALL)NOPASSWD:/usr/sbin/hddtemp

i filen /etc/sudoers, men det gick inte, fick fortfarande fel vid när jag kör kommandot "hddtemp /dev/sda" :
/dev/sda: open: Åtkomst nekas
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: script för loggning av sensors med crontabs

Inlägg av ubot »

Om du byter ut %admin mot username för den som ska köra skriptet då? Testade du att starta om efter ändringarna?
Användarvisningsbild
johanre
Serveradmin
Inlägg: 3888
Blev medlem: 22 okt 2006, 09:13
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Malmö

Re: script för loggning av sensors med crontabs

Inlägg av johanre »

Mest för att tydliggöra vad ubot skrev ovan: antingen så ser du till att den användaren du kör cron jobbet som, finns med i gruppen "admin" (kolla i /etc/group), eller så ändrar du raden i /etc/sudoers så det står:

jofors200 ALL=(ALL)NOPASSWD:/usr/sbin/hddtemp

(Självklart så byter du ut "jofors200" mot användarnamnet du kör det hela som)
Skriv svar

Återgå till "Terminalforum"