PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : lm_sensors



Firebuster
25-12-2002, 15:22
Moin,
ich habe lm_sensors schon einige Zeit erfolgreich am Laufen, zum Auslesen nutze ich das Plugin für gkrellm. Es lassen sich auch Alarmschwellen einstellen, z. B. bei 60° CPU-Temp. herunterfahren usw. Kennt jemand ein Skript, das diese Funktionen ohne X ausführt? Da mein Rechner eigentlich die meiste Zeit läuft (ed*****-Server, folding@home, mldon***), ich aber nicht immer davor sitze, möchte ich ihn während der aufsichtslosen Zeit ohne X laufen lassen, dafür suche ich ein Skript, das die CPU-Temperatur ausliest und bei einer bestimmten Schwelle die Kiste runterfährt (im Falle, daß meine WaKü ausfällt).
Gedacht hatte ich das über ein Skript, sensors > sensors.txt,

sensors
it87-isa-0290
Adapter: ISA adapter
Algorithm: ISA algorithm
VCore: +1.72 V (min = +1.53 V, max = +1.87 V)
Vcc2.5v: +2.46 V (min = +2.25 V, max = +2.75 V)
Vcc5v: +6.40 V (min = +2.96 V, max = +3.60 V) ALARM
+5V: +4.86 V (min = +4.50 V, max = +5.48 V)
+12V: +12.60 V (min = +11.36 V, max = +13.80 V)
-12V: -2.13 V (min = -15.86 V, max = -13.40 V) ALARM
-5V: -9.44 V (min = -10.13 V, max = -9.44 V) ALARM
SB 5V: +4.89 V (min = +4.50 V, max = +5.48 V)
V battery: +3.29 V
Processor's Fan:
0 RPM (min = 3000 RPM, div = 2) ALARM
Mainboard: +29°C (min = +20°C, max = +60°C)
Processor: +50°C (min = +20°C, max = +60°C)

Dann sollte eben die Prozessortemperatur verglichen werden, bei >=60 der Befehl "halt" abgesetzt werden, bei <60 sleep 120 und dann wieder von vorne. Leider sind meine Skriptfähigkeiten mit cut und sed nicht so gut. Kann mir hier jemand einen Ansatz liefern?:confused:

The Ripper
25-12-2002, 19:59
Damit sollte es gehen:


#!/bin/bash

while /bin/true;
do
temp=$(sensors | grep "Processor:" | awk '{print $2}' | sed -e 's/\+//' -e 's/°C//')

if [ $temp -lt 60 ]
then
sleep 120
else
halt
exit
fi
done


€: Sorry, nicht aufgepasst, in Zeile 5 war ein Newline das da nicht hingehörte ;)

Firebuster
26-12-2002, 10:15
Erstmal THX für die Hilfe.
Leider funktioniert es nicht:

[carsten@tux carsten]$ ./temp.sh
sed: -e expression #2, char 2: Unterminated `s' command
./temp.sh: [: -lt: unary operator expected

Das Script will jetzt runterfahren, wenn die Temp ><60° ist, nur bei 60° wird die Schleife neu gestartet.

#!/bin/bash

while /bin/true;
do
temp=$(sensors | grep "Processor:" | awk '{print $2}' | sed -e 's/\+//' -e 's/
°C//')

if [ $temp -lt 60 ]
then
sleep 120
else
cd /home/carsten/tmp/
./beep
exit
fi
done

The Ripper
26-12-2002, 12:22
Nächster Versuch, jetzt sollte es überall zum Laufen zu bekommen sein:


#!/bin/bash

# Label der CPU-Temperatur
#CPU_TEMP="CPU Temp:" # VIA-Sensoren
CPU_TEMP="Processor:" # SiS-Sensoren

while /bin/true;
do
temp=`sensors | grep "$CPU_TEMP" | sed -e "s/$CPU_TEMP//" -e 's/°C.*//' -e 's/\..*//'`

if [ -z "$temp" ]; then
echo "Bitte CPU_TEMP anpassen!"
exit
fi

if [ $temp -ge 60 ]; then
halt
exit
else
sleep 120
fi
done

CPU_TEMP in Zeile 4/5 muss angepasst werden, sensors liefert Chipsatz-abhängigen Namen für die CPU-Temperatur zurück!

Firebuster
26-12-2002, 13:01
Strike! Much THX! Funktioniert!