Gelöst.?
Ein Bash-Guru werde ich wahrscheinlich nie, aber ich will nicht immer Windows sehen.
Für Kritik mit Vorschlägen bin ich immer zu haben. :-)
Ok; schön ist das Skript nicht, aber es läuft erstmal. Evtl. kann ein Guru mal zeigen, wie sauber man Skripte schreiben kann/sollte.
Danke an alle die mir Gedankenanstösse gegeben haben.
Wolfgang
datei: temp1.sh (paste & copy)
#!/bin/bash
# 31.01.2012
# Sinn dieser Bash: # Ein SEHR SEHR SEHR einfacher Temp-Überblick
# Wie überall: # Verwendung auf eigene Gefahr!!!
# CentOS 5.7 # 2.6.18-274.12.1.el5 #1 SMP Tue Nov 29 13:37:46 EST 2011 x86_64 x86_64 x86_64 GNU/Linux # sensors # k10temp-pci-00c3 # Adapter: PCI adapter # temp1: +38°C
MAIL_Empaenger=root@local # <- hier die gewünschte Email-Adresse Monitor_DB_Path=/var/Monitor/rrd DB_Name=`basename "$0" .sh`.rrd Grafik_Path=/var/www/html/Monitor Grafik_Name=`basename "$0" .sh`.png
if [ -f /usr/bin/rrdtool ]; then
[ -d $Monitor_DB_Path ] || mkdir -p $Monitor_DB_Path [ -d $Grafik_Path ] || mkdir $Grafik_Path
if [ ! -f $Monitor_DB_Path/$DB_Name ]; then /usr/bin/rrdtool create $Monitor_DB_Path/$DB_Name --step 300 \ DS:TEMP_CPU:GAUGE:600:U:U \ DS:TEMP_SDC:GAUGE:600:U:U \ DS:TEMP_SDD:GAUGE:600:U:U \ RRA:AVERAGE:0.5:1:2160 \ RRA:AVERAGE:0.5:5:2016 \ RRA:AVERAGE:0.5:15:2880 \ RRA:AVERAGE:0.5:60:8760 fi
# Autom. Installation. [ -f $Monitor_DB_Path/`basename "$0"` ] \ || mv `basename "$0"` $Monitor_DB_Path/`basename "$0"` crontab -l | grep `basename "$0"` || \ echo "*/5 * * * * $Monitor_DB_Path`basename "$0"`"
/var/spool/cron/root
if [ -x /usr/bin/sensors ]; then TTT=$(sensors)
#echo -e "\nLänge des Array = ${#TTT[0]} Zeichen" #echo -e "\nEin Stück aus dem Array ausschneiden = ${TTT[@]:52:2}"
TEMP_CPU=$((${TTT[@]:52:2})) # eine andere Möglichkeit #TEMP_CPU=$(sensors | tr '\n' ' ' | cut -d'+' -f2 | cut -d'°' -f1) else logger "/usr/bin/sensors NICHT GEFUNDEN" #Nachinstallation von lm_sensors yum -y install lm_sensors && sensors fi
if [ -x /usr/bin/hddtemp ]; then TEMP_SDC=$(hddtemp -n /dev/sdc) # Schummelzeile1 ... wenn beide Werte identisch sind = ist nur der # letzte grafische Eintrag zu sehen [ $TEMP_CPU -eq $TEMP_SDC ] && TEMP_SDC=$(($TEMP_SDC - 1))
TEMP_SDD=$(hddtemp -n /dev/sdd) # Schummelzeile2 [ $TEMP_SDC -eq $TEMP_SDD ] && TEMP_SDD=$(($TEMP_SDD - 1)) # Schummelzeile3 [ $TEMP_CPU -eq $TEMP_SDD ] && TEMP_SDD=$(($TEMP_SDD - 1)) else logger "/usr/bin/hddtemp NICHT GEFUNDEN" TEMP_SDC=1 TEMP_SDD=1 #Nachinstallation von hddtemp yum -y install hddtemp || logger "Konnte hddtemp nicht installieren" fi
#echo -e "\n################\n$TEMP_CPU:$TEMP_SDC:$TEMP_SDD\n#######\n"
/usr/bin/rrdtool update $Monitor_DB_Path/$DB_Name \ N:$TEMP_CPU:$TEMP_SDC:$TEMP_SDD
nice -n 19 rrdtool graph $Grafik_Path/$Grafik_Name -a PNG \ -t "Temperatur in °C $HOSTNAME" \ -v "`date +%d.%m.%Y-%H:%M`" \ --zoom 2 \ DEF:TEMP_CPU=$Monitor_DB_Path/$DB_Name:TEMP_CPU:AVERAGE \ DEF:TEMP_SDC=$Monitor_DB_Path/$DB_Name:TEMP_SDC:AVERAGE \ DEF:TEMP_SDD=$Monitor_DB_Path/$DB_Name:TEMP_SDD:AVERAGE \ LINE1:TEMP_CPU#FF0000:"CPU = $TEMP_CPU" \ LINE1:TEMP_SDC#00FF00:"SDC = $TEMP_SDC" \ LINE1:TEMP_SDD#0000FF:"SDD = $TEMP_SDD" > /dev/null
[ $TEMP_CPU -gt 45 ] && echo "Die CPU-Temp. beträgt $TEMP_CPU °C" | \ mail -s "$HOSTNAME" $MAIL_Empaenger
else
logger "rrdtool NOT FOUND" #Autom. Installation von rrdtool yum -y install rrdtool || logger "Konnte rrdtool nicht installieren" fi