Die Festplatten werden einmal stündlich mittels hddtemp überwacht, falls die temperatur in einen Kritischen Bereich ist wird die Überwachung weiterhin durchgeführt, bei weiteren Temperaturanstieg wird ein Systemshutdown eingeleitet!

Das Script ist sicherlich noch nicht ausgereift

Verbesserungsvorschläge:

#!/bin/bash

##Temperaturueberwachung der Festplatten mit hddtemp

#History:
#v0.1: $domainname integriert
#      Umlaute entfernt
#      MAILTO integriert
#      Temperaturvariablen eingefuehrt
#      auf Parameter -n bei hddtemp angepasst

domainname="m1k3.local"
MAILTO=root

loggeropt="logger -t hddtemp -s"
loggeremerg="logger -t hddtemp -p emerg -s"

tcrit=70        #ab dieser Temperatur werden die Festplatten weiterhin ueberwacht
tshut=80        #hier wird ein systemshutdown eingeleitet

if [ `pstree | grep hddtemp | wc -l` -gt 1 ]; then
        $loggeropt "Festplatten werden bereits ueberwacht .... exit now"
        exit 0
fi



$loggeropt "===================== `date +%F-%T` ====================="
$loggeropt "Temperaturueberwachung der Festplatten fuer `hostname`.$domainname wird gestartet"

if [ ! `which hddtemp` ]; then
        $loggeropt "hddtemp wurde nicht auf diesem Computer gefunden" | mail $MAILTO
        exit 1
fi
temphde=`hddtemp -n /dev/hde`
$loggeropt "/dev/hde hat eine Temperatur von $temphde °C erreicht"
temphdf=`hddtemp -n /dev/hdf`
$loggeropt "/dev/hdf hat eine Temperatur von $temphdf °C erreicht"
temphdg=`hddtemp -n /dev/hdg`
$loggeropt "/dev/hdg hat eine Temperatur von $temphdg °C erreicht"

if [ $temphde -gt $tcrit ]; then
        $loggeremerg "WARNING /dev/hde hat eine kritische Temperatur von $temphde °C erreicht"
        $loggeremerg "WARNING: /dev/hde wird weiterhin ueberwacht"
        echo -e "\a"
        crithde=1
fi
if [ $temphdf -gt $tcrit ]; then
        $loggeremerg "WARNING /dev/hdf hat eine kritische Temperatur von $temphdf °C erreicht"
        $loggeremerg "WARNING: /dev/hdf wird weiterhin ueberwacht"
        echo -e "\a"
        crithdf=1
fi
if [ $temphdg -gt $tcrit ]; then
        $loggeremerg "WARNING /dev/hdg hat eine kritische Temperatur von $temphdg °C erreicht"
        $loggeremerg "WARNING: /dev/hdg wird weiterhin ueberwacht"
        echo -e "\a"
        crithdg=1
fi

if [[ "$crithdg" -eq 1 || "$crithdf" -eq 1 || "$crithde" -eq 1 ]]; then
        echo -e "\a"
        while [[ "$crithdg" -eq 1 || "$crithdf" -eq 1 || "$crithde" -eq 1 ]]; do
                sleep 60
                temphde=`hddtemp -n /dev/hde`
                temphdf=`hddtemp -n /dev/hdf`
                temphdg=`hddtemp -n /dev/hdg`

                crithde=0
                crithdf=0
                crithdg=0

                if [ $temphde -gt $tcrit ]; then
                        $loggeremerg "WARNING /dev/hde hat eine kritische Temperatur von $temphde °C erreicht"
                        $loggeremerg "WARNING: /dev/hde wird weiterhin ueberwacht"
                        echo -e "\a"
                        crithde=1
                fi
                if [ $temphdf -gt $tcrit ]; then
                        $loggeremerg "WARNING /dev/hdf hat eine kritische Temperatur von $temphdf °C erreicht"
                        $loggeremerg "WARNING: /dev/hdf wird weiterhin ueberwacht"
                        echo -e "\a"
                        crithdf=1
                fi
                if [ $temphdg -gt $tcrit ]; then
                        $loggeremerg "WARNING /dev/hdg hat eine kritische Temperatur von $temphdg °C erreicht"
                        $loggeremerg "WARNING: /dev/hdg wird weiterhin ueberwacht"
                        echo -e "\a"
                        crithdg=1
                fi


                if [[ $temphde -gt $tshut || $temphdf -gt $tshut || $temphdg -gt $tshut ]]; then
                        for ((i=1;i<=10;i++)); do
                                echo -e "\a"
                                sleep 1
                        done

                        $loggeremerg "WARNING: die Festplatten Temperatur hat einen SEHR kritischen Bereich erreicht"
                        $loggeremerg "WARNING /dev/hde hat eine kritische Temperatur von $temphde °C erreicht"
                        $loggeremerg "WARNING /dev/hdf hat eine kritische Temperatur von $temphdf °C erreicht"
                        $loggeremerg "WARNING /dev/hdg hat eine kritische Temperatur von $temphdg °C erreicht"


                        $loggeremerg " "
                        $loggeremerg "#######################################"
                        $loggeremerg "Es wird ein System-Shutdown eingeleitet!"
                        $loggeremerg "#######################################"
                        $loggeremerg " "
                        for ((i=1;i<=10;i++)); do
                                echo -e "\a"
                                sleep 1
                        done
                        shutdown -h now "kritische Festplatten Temperatur erreicht" | mail $MAILTO
                        exit 0
                fi


        done

fi

$loggeropt "Temperaturueberwachung der Festplatten fuer `hostname`.$domainname wurde durchgefuehrt"
$loggeropt "===================== `date +%F-%T` ====================="

exit 0

 
howto/disktempmbmon.txt · Last modified: 2008/05/24 17:05 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki