script för loggning av sensors med crontabs
script för loggning av sensors med crontabs
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?
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?
Re: script för loggning av sensors med crontabs
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.
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.
Sv. guider: http://ubuntu-se.org/wiki/Howtos
Server Guide: https://help.ubuntu.com/12.04/serverguide/index.html
FAH: http://ubuntu-se.org/phpBB3/viewtopic.php?f=208&t=54741
Felsök Internet-uppkopplingen: http://ubuntu-se.org/phpBB3/viewtopic.p ... 47#p450647
Buggrapportera: http://ubuntu-se.org/phpBB3/viewtopic.p ... 04#p450704
Server Guide: https://help.ubuntu.com/12.04/serverguide/index.html
FAH: http://ubuntu-se.org/phpBB3/viewtopic.php?f=208&t=54741
Felsök Internet-uppkopplingen: http://ubuntu-se.org/phpBB3/viewtopic.p ... 47#p450647
Buggrapportera: http://ubuntu-se.org/phpBB3/viewtopic.p ... 04#p450704
- 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
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
Eller så ser du till att PATH variabeln innehåller det du behöver.
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
Re: script för loggning av sensors med crontabs
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
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
Re: script för loggning av sensors med crontabs
Om mcNisse har rätt så spelr det väl knappast någon roll om skriptet körs med sudo eller inte heller?
Sv. guider: http://ubuntu-se.org/wiki/Howtos
Server Guide: https://help.ubuntu.com/12.04/serverguide/index.html
FAH: http://ubuntu-se.org/phpBB3/viewtopic.php?f=208&t=54741
Felsök Internet-uppkopplingen: http://ubuntu-se.org/phpBB3/viewtopic.p ... 47#p450647
Buggrapportera: http://ubuntu-se.org/phpBB3/viewtopic.p ... 04#p450704
Server Guide: https://help.ubuntu.com/12.04/serverguide/index.html
FAH: http://ubuntu-se.org/phpBB3/viewtopic.php?f=208&t=54741
Felsök Internet-uppkopplingen: http://ubuntu-se.org/phpBB3/viewtopic.p ... 47#p450647
Buggrapportera: http://ubuntu-se.org/phpBB3/viewtopic.p ... 04#p450704
Re: script för loggning av sensors med crontabs
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
%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
Re: script för loggning av sensors med crontabs
Om du byter ut %admin mot username för den som ska köra skriptet då? Testade du att starta om efter ändringarna?
Sv. guider: http://ubuntu-se.org/wiki/Howtos
Server Guide: https://help.ubuntu.com/12.04/serverguide/index.html
FAH: http://ubuntu-se.org/phpBB3/viewtopic.php?f=208&t=54741
Felsök Internet-uppkopplingen: http://ubuntu-se.org/phpBB3/viewtopic.p ... 47#p450647
Buggrapportera: http://ubuntu-se.org/phpBB3/viewtopic.p ... 04#p450704
Server Guide: https://help.ubuntu.com/12.04/serverguide/index.html
FAH: http://ubuntu-se.org/phpBB3/viewtopic.php?f=208&t=54741
Felsök Internet-uppkopplingen: http://ubuntu-se.org/phpBB3/viewtopic.p ... 47#p450647
Buggrapportera: http://ubuntu-se.org/phpBB3/viewtopic.p ... 04#p450704
- 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
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)
jofors200 ALL=(ALL)NOPASSWD:/usr/sbin/hddtemp
(Självklart så byter du ut "jofors200" mot användarnamnet du kör det hela som)