Die CPU wird einmal stündlich mittels mbmon ü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
#!/bin/bash ##Temperaturueberwachung der CPU mit mbmon #History: #v0.1: $domainname integriert # Umlaute entfernt # MAILTO integriert # Temperaturvariablen eingefuehrt loggeropt="logger -t cputemp -s" domainname="m1k3.local" MAILTO=root twarn=60 tcrit=70 tshut=80 if [ `pstree | grep cputemp | wc -l` -gt 1 ]; then $loggeropt "CPU wird bereits ueberwacht .... exit now" exit 0 fi $loggeropt "===================== `date +%F-%T` =====================" $loggeropt "Temperaturueberwachung der CPU fuer `hostname`.$domainname wird gestartet" if [ ! `which mbmon` ]; then $loggeropt "mbmon wurde nicht auf diesem Computer gefunden" $loggeropt "Temperaturueberwachung der CPU fuer `hostname`.$domainname konnte nicht durchgefuehrt werden" | mail $MAILTO $loggeropt "===================== `date +%F-%T` =====================" exit 1 fi tempcpu=`mbmon -c 1 | grep Temp` $loggeropt $tempcpu if [ `echo $tempcpu | cut -d= -f2 | cut -d, -f1 | cut -d. -f1` -gt $twarn ]; then loggeremerg="logger -t cputemp -p emerg -s" $loggeremerg "WARNING die CPU Temperatur hat einen kritischen Bereich von`echo $tempcpu | cut -d= -f2 | cut -d, -f1 | cut -d. -f1`°C erreicht" $loggeremerg "WARNING: CPU wird weiterhin ueberwacht" echo -e "\a" while [ `echo $tempcpu | cut -d= -f2 | cut -d, -f1 | cut -d. -f1` -gt $tcrit ]; do tempcpu=`mbmon -c 1 | grep Temp` $loggeremerg $tempcpu if [ `echo $tempcpu | cut -d= -f2 | cut -d, -f1 | cut -d. -f1` -gt $tshut ]; then for ((i=1;i<=10;i++)); do echo -e "\a" sleep 1 done $loggeremerg "WARNING die CPU Temperatur hat einen SEHR kritischen Bereich von`echo $tempcpu | cut -d= -f2 | cut -d, -f1 | cut -d. -f1`°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 CPU Temperatur erreicht" | mail $MAILTO exit 0 fi echo -e "\a" sleep 60 done else $loggeropt "die CPU Temperatur betraegt`echo $tempcpu | cut -d= -f2 | cut -d, -f1 | cut -d. -f1`°C" fi $loggeropt "Temperaturueberwachung der CPU fuer `hostname`.$domainname wurde durchgefuehrt" $loggeropt "===================== `date +%F-%T` =====================" exit 0