Script per monitorare il server

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.

[code]
#!/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/32×32/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/32×32/status/stock_dialog-warning.png “Temperatura alta” “Il server ha caldo! ”
fi
else
lol=”Server down!”
fi
zenity –notification –text=”$lol” &
sleep $time
done
[/code]

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.

Lascia un commento