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