Script per monitorare il server
by monossido • giugno 17, 2008 • Altro informatica, Gnome, GNU/Linux, Hardware, Networking, Smanettamenti, Software, Tips and tricks • 0 Comments • 2.129 visite
Finalmente sono riuscito ad ottenere dai valori plausibili da lm-sensors sul server. Dell'acpi non se ne parla proprio...mi sono anche ricompilato il DSDT ma niente. Con lm-sensors alla fine ho risolto decommentando la riga riguardante la mia scheda madre (tusl2-c) da /etc/sensors.conf.
In più per fargli riconoscere correttamente la ventola della cpu come da wiki ho aggiunto "set fan1_div 8" sempre in sensors.conf.
Ora che avevo risolto il problema maggiore ho iniziato a pensare a come potrei avere fatto a monitorare la temperatura dai miei pc in lan. La sensors-applet che uso di solito non ha nessun tipo di supporto per leggere le temperature da remoto, solo gkrellm e concky che io sappia hanno questa funzione...ma sono due progetti vecchiotti e poco integrati in gnome.
Ho risolto con un mio script molto "artigianale"
. Lo script si connette via ssh con chiave crittografica (senza password) e si salva temperatura e velocità delle ventole di Cpu e Hard disk, in più visto che c'ero prende anche velocità di download totale e progresso dei file di aMule grazie a amulecmd
.
Tutte queste info vengono visualizzate tramite zenity, in particolare l'opzione notification. Non sarà splendido ma funziona. In futuro magari potrei leggermi qualcosa riguardo la creazione di un applet per gnome, ho dato un occhiata e pensavo fosse più facile per ora ho rimandato.
Lo script usa ssh zenity libnotify (quando la temperatura è troppo alta) e amulecmd, ovviamente se qualcuno volesse usarlo deve configurarselo.
-
#!/bin/bash
-
#Variabili da impostare
-
server=monossido.ath.cx
-
time=120
-
passwd=password
-
-
ciclo=0
-
while [ "$ciclo" != 1 ]
-
do
-
killall -9 zenity
-
if ping $server -c 1 &>/dev/null
-
then
-
cpu=$( ssh root@$server sensors | grep CPU | sed -e "s/(.*//g" )
-
hddf=$( ssh root@$server sensors | grep HD | sed -e "s/(.*//g" )
-
hdd=$( ssh root@$server hddtemp /dev/hda | grep hda | sed -e "s/.*:/HD Temp:/g" )
-
dl=$( amulecmd -h 192.168.1.2 -P $passwd -c status | grep Download | sed -e "s/.*D/D/g" | sed -e "s/Download.*:/Velocità Download totale:/g" )
-
dled=$( amulecmd -h 192.168.1.2 -P $passwd -c "Show DL" | grep ">" | sed -e "s/\].*//" | sed -e "s/.*\[//" | sed -e "s/.*\ //" | tr '\n' ' ' | tr '%' '\n' | sed -e "s/,.*/%/" | sed -e "s/\ //" )
-
lol=$( echo "$cpu";echo "$hddf"; echo "$hdd"; echo "---aMule---"; echo "$dl"; echo "$dled" )
-
max=$( echo $cpu | grep Temp | sed -e "s/.*+//g" | sed -e "s/\..*//g" )
-
if [ "$max" -gt "70" ]
-
then
-
notify-send -u critical -t 3000 -i /usr/share/icons/gnome/32x32/status/stock_dialog-error.png "Temperatura troppo alta" "Ti si sta friggendo il server! "
-
fi
-
if [ "$max" -gt "58" ]
-
then
-
notify-send -u critical -t 3000 -i /usr/share/icons/gnome/32x32/status/stock_dialog-warning.png "Temperatura alta" "Il server ha caldo! "
-
fi
-
else
-
lol="Server down!"
-
fi
-
zenity --notification --text="$lol" &
-
sleep $time
-
done
Come si può vedere sed crea dipendenza
. L'unica cosa che non mi piace è quel "killall -9 zenity" che killerebbe qualsiasi dialogo di zenity aperto, ma non ho trovato altre soluzioni per aggiornare i dati.


