• Script per monitorare il server

    by  • 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.

    CODE:
    1. #!/bin/bash
    2. #Variabili da impostare
    3. server=monossido.ath.cx
    4. time=120
    5. passwd=password
    6.  
    7. ciclo=0
    8. while [ "$ciclo" != 1 ]
    9. do
    10. killall -9 zenity
    11. if ping $server -c 1 &>/dev/null
    12. then
    13. cpu=$( ssh root@$server sensors | grep CPU | sed -e "s/(.*//g" )
    14. hddf=$( ssh root@$server sensors | grep HD | sed -e "s/(.*//g" )
    15. hdd=$( ssh root@$server hddtemp /dev/hda | grep hda | sed -e "s/.*:/HD Temp:/g" )
    16. 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" )
    17. 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/\ //" )
    18. lol=$( echo "$cpu";echo "$hddf"; echo "$hdd"; echo "---aMule---"; echo "$dl"; echo "$dled" )
    19. max=$( echo $cpu | grep Temp | sed -e "s/.*+//g" | sed -e "s/\..*//g" )
    20. if [ "$max" -gt "70" ]
    21. then
    22. 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! "
    23. fi
    24. if [ "$max" -gt "58" ]
    25. then
    26. notify-send -u critical -t 3000 -i /usr/share/icons/gnome/32x32/status/stock_dialog-warning.png "Temperatura alta" "Il server ha caldo! "
    27. fi
    28. else
    29. lol="Server down!"
    30. fi
    31. zenity --notification --text="$lol" &
    32. sleep $time
    33. done

    Come si può vedere sed crea dipendenza :D . 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

    L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *