Update temp.inc.sh

This commit is contained in:
2024-01-31 08:31:18 -06:00
parent b54bf1487c
commit fb1887a5a4

View File

@@ -71,128 +71,126 @@ CHECKTEMP(){
DIVIDER . yellow 70
for SENSOR in ${PW_SENSOR_ORD[@]}; do
if [ "${search}" == "" ] || [[ "${SENSOR,,}" = *"${search,,}"* ]]; then
if ([ "${search}" == "" ] || [[ "${SENSOR,,}" = *"${search,,}"* ]]) && [ "${PW_SENSOR_TYPE[${SENSOR}]}" != "esxi" ] && [ "${temptype}" != "esxi" ] && ([ "${temptype}" != "fans" ] || ([ "${temptype}" == "fans" ] && [[ "${SENSOR}" = *"Room"* ]])); then
[ "${last_sensor}" == "${SENSOR%%-*}" ] && echo -en "\033[1A"
c=0; spc=''; spc1=`expr ${cw} - ${#SENSOR}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; c=`expr ${c} + 1`; done
if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.down ]; then
echo -en "\r\033[K${idsCL[White]}${idsST[Bold]}${SENSOR}${idsST[Reset]}${spc}${idsCL[Default]}: ${idsCL[Yellow]}"
if [ "${avgdays}" != "noavg" ]; then
if [[ "${avgdays^^}" = *"M"* ]]; then
avgdays_disp="${avgdays::-1} Minute"
elif [[ "${avgdays^^}" = *"H"* ]]; then
avgdays_disp="${avgdays::-1} Hour"
elif [[ "${avgdays^^}" = *"D"* ]]; then
avgdays_disp="${avgdays::-1} Day"
elif [[ "${avgdays}" =~ ^[0-9]+$ ]]; then
avgdays_disp="${avgdays::-1} Day"
fi
echo -en "Pulling data and calculating ${avgdays_disp} average ... "
else
echo -en "Pulling data ... "
fi
reading=$(CHECKTEMPSENSOR ${SENSOR} . . . . ${avgdays})
echo -e "\r\033[K${idsCL[White]}${idsST[Bold]}${SENSOR}${idsST[Reset]}${spc}${idsCL[Default]}: ${reading}${idsCL[Default]}"
else
echo -e "\r\033[K${idsCL[White]}${idsST[Bold]}${SENSOR}${idsST[Reset]}${spc}${idsCL[Default]}: ${idsCL[Yellow]}Sensor Offline${idsCL[Default]}"
fi
echo
last_sensor=${SENSOR%%-*}
fi
done
for SENSOR in ${PW_SENSOR_ORD[@]}; do
if ([ "${search}" == "" ] || [[ "${SENSOR,,}" = *"${search,,}"* ]]) && [ "${PW_SENSOR_TYPE[${SENSOR}]}" == "esxi" ] && [ "${temptype}" != "sensors" ]; then
vHOSTiDRACIP=${PW_HOST_IDRACS[${SENSOR}]}
vHOSTIP=${PW_HOST_ADDRESSES[${SENSOR}]}
vHOSTNAME=${PW_ESXI_HOST_NAMES[${vHOSTiDRACIP}]}
if [ "${PW_SENSOR_TYPE[${SENSOR}]}" == "esxi" ] && [ "${temptype}" != "sensors" ]; then
vHOSTiDRACIP=${PW_HOST_IDRACS[${SENSOR}]}
vHOSTIP=${PW_HOST_ADDRESSES[${SENSOR}]}
vHOSTNAME=${PW_ESXI_HOST_NAMES[${vHOSTiDRACIP}]}
echo -en "\r\033[K${idsCL[White]}${idsST[Bold]}${SENSOR} Host Sensors ${idsST[Reset]}${idsCL[White]}[${vHOSTiDRACIP}]"
if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.down ]; then
if [ "${avgdays}" != "noavg" ]; then
echo -en "${idsCL[LightCyan]} Getting FanSpeed and calculating ${avgdays_disp} average..."
else
echo -en "${idsCL[LightCyan]} Getting FanSpeed..."
fi
RPM=$(snmpwalk -v 1 -c public -t 2 ${PW_HOST_IDRACS[${SENSOR}]} .1.3.6.1.4.1.674.10892.5.4.700.12.1.6.1.3 -O vq)
[ ! -f ${PW_TMPFOLDER}/.fanspeed.${SENSOR}.${cdt} ] && until [ -f ${PW_TMPFOLDER}/.fanspeed.${SENSOR}.${cdt} ]; do tmp=tmp; done
[ "${avgdays}" != "noavg" ] && fan_average=$(bc <<< "scale=0; $(ROUNDHALVES $(bc <<< "scale=3; $(AVERAGETEMP ${SENSOR} ${avgdays} FanSpeed)/10"))*10/1")
echo -en "\r\033[K${idsCL[White]}${idsST[Bold]}${SENSOR} Host Sensors ${idsST[Reset]}${idsCL[White]}[${vHOSTiDRACIP}]"
if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.down ]; then
if [ "${avgdays}" != "noavg" ]; then
echo -en "${idsCL[LightCyan]} Getting FanSpeed and calculating ${avgdays_disp} average..."
else
echo -en "${idsCL[LightCyan]} Getting FanSpeed..."
fi
RPM=$(snmpwalk -v 1 -c public -t 2 ${PW_HOST_IDRACS[${SENSOR}]} .1.3.6.1.4.1.674.10892.5.4.700.12.1.6.1.3 -O vq)
[ ! -f ${PW_TMPFOLDER}/.fanspeed.${SENSOR}.${cdt} ] && until [ -f ${PW_TMPFOLDER}/.fanspeed.${SENSOR}.${cdt} ]; do tmp=tmp; done
[ "${avgdays}" != "noavg" ] && fan_average=$(bc <<< "scale=0; $(ROUNDHALVES $(bc <<< "scale=3; $(AVERAGETEMP ${SENSOR} ${avgdays} FanSpeed)/10"))*10/1")
echo -en "\r\033[K${idsCL[White]}${idsST[Bold]}${SENSOR} Host Sensors ${idsST[Reset]}${idsCL[White]}[${vHOSTiDRACIP}]"
[ "${SENSOR}" == "iDS-vMS-Host6" ] && cSENSOR="iDS-vMS-Host7" || cSENSOR=${SENSOR}
if [ -f ${PW_TMPFOLDER}/.lastfancheck/${cSENSOR}.gl ]; then
FSC="${idsCL[LightGreen]}${idsST[Bold]}"
elif [ -f ${PW_TMPFOLDER}/.lastfancheck/${cSENSOR}.set ]; then
FSC="${idsCL[LightGreen]}"
else
FSC="${idsCL[LightYellow]}"
fi
echo -en "${idsCL[LightCyan]} [FanSpeed=${FSC}$(cat ${PW_TMPFOLDER}/.fanspeed.${SENSOR}.${cdt})${idsST[Reset]}${idsCL[LightCyan]}'% "
if [ "${avgdays}" != "noavg" ]; then
echo -e "${idsCL[LightYellow]} AVG=${fan_average}'%${idsCL[LightCyan]}]${idsCL[Default]}"
else
echo -e "($(IDS_NUMBER_FORMAT ${RPM})'RPM)]${idsCL[Default]}"
fi
[ "${SENSOR}" == "iDS-vMS-Host6" ] && cSENSOR="iDS-vMS-Host7" || cSENSOR=${SENSOR}
if [ -f ${PW_TMPFOLDER}/.lastfancheck/${cSENSOR}.gl ]; then
FSC="${idsCL[LightGreen]}${idsST[Bold]}"
elif [ -f ${PW_TMPFOLDER}/.lastfancheck/${cSENSOR}.set ]; then
FSC="${idsCL[LightGreen]}"
else
echo -e "${idsCL[Default]}"
FSC="${idsCL[LightYellow]}"
fi
echo -en "${idsCL[LightCyan]} [FanSpeed=${FSC}$(cat ${PW_TMPFOLDER}/.fanspeed.${SENSOR}.${cdt})${idsST[Reset]}${idsCL[LightCyan]}'% "
if [ "${avgdays}" != "noavg" ]; then
echo -e "${idsCL[LightYellow]} AVG=${fan_average}'%${idsCL[LightCyan]}]${idsCL[Default]}"
else
echo -e "($(IDS_NUMBER_FORMAT ${RPM})'RPM)]${idsCL[Default]}"
fi
# if [ "${temptype}" != "fans" ]; then
DIVIDER . lightCyan 70
echo -en "${idsCL[Yellow]}Pulling data for '${SENSOR}' ... "
# if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.down ] && [ "$(CHECK_HOST ${vHOSTIP})" != "false" ]; then
if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.down ]; then
vHOST_TEMPNAMES=$(snmpwalk -v 1 -c public -t 2 ${vHOSTiDRACIP} .1.3.6.1.4.1.674.10892.5.4.700.20.1.8 -O vq | sed -e 's/"//g' | sed -e 's/ Temp//g')
IFS=$'\n'
read -rd '' -a vHOST_TEMPNAMES <<<"${vHOST_TEMPNAMES}"
unset IFS
echo -en "\r\033[K"
if [ ${#vHOST_TEMPNAMES[@]} -gt 1 ]; then
t=1
for sensorname in "${vHOST_TEMPNAMES[@]}"; do
if [ "${temptype}" != "fans" ] || ([ "${temptype}" == "fans" ] && [[ "${sensorname}" = *"Exhaust"* ]]); then
temp_c=$(snmpwalk -v 1 -c public -t 2 ${vHOSTiDRACIP} .1.3.6.1.4.1.674.10892.5.4.700.20.1.6.1.${t} -O vq | sed -e 's/"//g')
temp_c=`echo "scale=1; ${temp_c}/10" | bc`
temp_warn=$(snmpwalk -v 1 -c public -t 2 ${vHOSTiDRACIP} .1.3.6.1.4.1.674.10892.5.4.700.20.1.11.1.${t} -O vq | sed -e 's/"//g')
temp_warn=`echo "scale=1; ${temp_warn}/10" | bc`
temp_crit=$(snmpwalk -v 1 -c public -t 2 ${vHOSTiDRACIP} .1.3.6.1.4.1.674.10892.5.4.700.20.1.10.1.${t} -O vq | sed -e 's/"//g')
temp_crit=`echo "scale=1; ${temp_crit}/10" | bc`
c=0; spc=''; spc1=`expr ${cw} - ${#sensorname} - 1`; until [ ${c} = ${spc1} ]; do spc="${spc} "; c=`expr ${c} + 1`; done
[ "${avgdays}" != "noavg" ] && echo -en "${idsCL[LightCyan]} ${sensorname}${spc}${idsCL[Default]}: ${idsCL[Yellow]}Calculating ${avgdays_disp} average ... "
reading=$(CHECKTEMPSENSOR ${SENSOR} ${temp_c} ${temp_warn} ${temp_crit} ${sensorname// /_} ${avgdays} ${temptype})
[ "${avgdays}" != "noavg" ] && echo -en "\r\033[K"
echo -e "${idsCL[LightCyan]} ${sensorname}${spc}${idsCL[Default]}: ${reading}"
if [ "${temptype}" == "fans" ]; then
if [ -f ${PW_TMPFOLDER}/.lastfancheck/${cSENSOR}.gl ]; then
FSC="${idsCL[LightGreen]}"
elif [ -f ${PW_TMPFOLDER}/.lastfancheck/${cSENSOR}.set ]; then
FSC="${idsCL[Green]}"
else
FSC="${idsCL[LightYellow]}"
fi
echo -e " Golidlock Zone : ${idsCL[LightGreen]}${DEFAULT_ESXI_EXHAUST_MIN}'F${idsCL[Default]} +-${ESXI_FANSPEED_GL_ZONE}'F [ ${idsCL[Green]}${GL_LOW}${idsCL[Default]} <--> ${idsCL[LightYellow]}${GL_HIGH}${idsCL[Default]} ]"
echo -e " Last checked : ${idsCL[LightCyan]}$(date -r ${PW_TMPFOLDER}/.lastfancheck/${SENSOR} "+%m/%d @ %l:%M%p")${idsCL[Default]}"
echo -e " Last set : ${FSC}$(date -r ${PW_TMPFOLDER}/.lastfancheck/${SENSOR}.set "+%m/%d @ %l:%M%p")${idsCL[Default]}"
fi
fi
((t++))
done
else
echo -e "${idsCL[LightCyan]} ${vHOSTNAME}${spc}${idsCL[Default]}: No Data"
fi
else #host down
echo -e "\r\033[K${idsCL[LightRed]}${SENSOR} Host is down${idsCL[Default]}"
# if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.down ] || [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/${SENSOR}.down)) -ge 1800 ]; then
# SENDNOTICE "${vHOSTiDRACIP} ERROR" "${vHOSTNAME} Host is down" 1
# echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${vHOSTiDRACIP} - ${vHOSTNAME} Host is down" >> ${logtemp}
# touch ${PW_TMPFOLDER}/${EHOST}.down
# fi
fi
# fi
echo
else
echo -e "${idsCL[Default]}"
fi
# if [ "${temptype}" != "fans" ]; then
DIVIDER . lightCyan 70
echo -en "${idsCL[Yellow]}Pulling data for '${SENSOR}' ... "
if [ "${PW_SENSOR_TYPE[${SENSOR}]}" != "esxi" ] && [ "${temptype}" != "esxi" ] && ([ "${temptype}" != "fans" ] || ([ "${temptype}" == "fans" ] && [[ "${SENSOR}" = *"Room"* ]])); then
[ "${last_sensor}" == "${SENSOR%%-*}" ] && echo -en "\033[1A"
c=0; spc=''; spc1=`expr ${cw} - ${#SENSOR}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; c=`expr ${c} + 1`; done
# if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.down ] && [ "$(CHECK_HOST ${vHOSTIP})" != "false" ]; then
if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.down ]; then
echo -en "\r\033[K${idsCL[White]}${idsST[Bold]}${SENSOR}${idsST[Reset]}${spc}${idsCL[Default]}: ${idsCL[Yellow]}"
if [ "${avgdays}" != "noavg" ]; then
if [[ "${avgdays^^}" = *"M"* ]]; then
avgdays_disp="${avgdays::-1} Minute"
elif [[ "${avgdays^^}" = *"H"* ]]; then
avgdays_disp="${avgdays::-1} Hour"
elif [[ "${avgdays^^}" = *"D"* ]]; then
avgdays_disp="${avgdays::-1} Day"
elif [[ "${avgdays}" =~ ^[0-9]+$ ]]; then
avgdays_disp="${avgdays::-1} Day"
fi
echo -en "Pulling data and calculating ${avgdays_disp} average ... "
vHOST_TEMPNAMES=$(snmpwalk -v 1 -c public -t 2 ${vHOSTiDRACIP} .1.3.6.1.4.1.674.10892.5.4.700.20.1.8 -O vq | sed -e 's/"//g' | sed -e 's/ Temp//g')
IFS=$'\n'
read -rd '' -a vHOST_TEMPNAMES <<<"${vHOST_TEMPNAMES}"
unset IFS
echo -en "\r\033[K"
if [ ${#vHOST_TEMPNAMES[@]} -gt 1 ]; then
t=1
for sensorname in "${vHOST_TEMPNAMES[@]}"; do
if [ "${temptype}" != "fans" ] || ([ "${temptype}" == "fans" ] && [[ "${sensorname}" = *"Exhaust"* ]]); then
temp_c=$(snmpwalk -v 1 -c public -t 2 ${vHOSTiDRACIP} .1.3.6.1.4.1.674.10892.5.4.700.20.1.6.1.${t} -O vq | sed -e 's/"//g')
temp_c=`echo "scale=1; ${temp_c}/10" | bc`
temp_warn=$(snmpwalk -v 1 -c public -t 2 ${vHOSTiDRACIP} .1.3.6.1.4.1.674.10892.5.4.700.20.1.11.1.${t} -O vq | sed -e 's/"//g')
temp_warn=`echo "scale=1; ${temp_warn}/10" | bc`
temp_crit=$(snmpwalk -v 1 -c public -t 2 ${vHOSTiDRACIP} .1.3.6.1.4.1.674.10892.5.4.700.20.1.10.1.${t} -O vq | sed -e 's/"//g')
temp_crit=`echo "scale=1; ${temp_crit}/10" | bc`
c=0; spc=''; spc1=`expr ${cw} - ${#sensorname} - 1`; until [ ${c} = ${spc1} ]; do spc="${spc} "; c=`expr ${c} + 1`; done
[ "${avgdays}" != "noavg" ] && echo -en "${idsCL[LightCyan]} ${sensorname}${spc}${idsCL[Default]}: ${idsCL[Yellow]}Calculating ${avgdays_disp} average ... "
reading=$(CHECKTEMPSENSOR ${SENSOR} ${temp_c} ${temp_warn} ${temp_crit} ${sensorname// /_} ${avgdays} ${temptype})
[ "${avgdays}" != "noavg" ] && echo -en "\r\033[K"
echo -e "${idsCL[LightCyan]} ${sensorname}${spc}${idsCL[Default]}: ${reading}"
if [ "${temptype}" == "fans" ]; then
if [ -f ${PW_TMPFOLDER}/.lastfancheck/${cSENSOR}.gl ]; then
FSC="${idsCL[LightGreen]}"
elif [ -f ${PW_TMPFOLDER}/.lastfancheck/${cSENSOR}.set ]; then
FSC="${idsCL[Green]}"
else
FSC="${idsCL[LightYellow]}"
fi
echo -e " Golidlock Zone : ${idsCL[LightGreen]}${DEFAULT_ESXI_EXHAUST_MIN}'F${idsCL[Default]} +-${ESXI_FANSPEED_GL_ZONE}'F [ ${idsCL[Green]}${GL_LOW}${idsCL[Default]} <--> ${idsCL[LightYellow]}${GL_HIGH}${idsCL[Default]} ]"
echo -e " Last checked : ${idsCL[LightCyan]}$(date -r ${PW_TMPFOLDER}/.lastfancheck/${SENSOR} "+%m/%d @ %l:%M%p")${idsCL[Default]}"
echo -e " Last set : ${FSC}$(date -r ${PW_TMPFOLDER}/.lastfancheck/${SENSOR}.set "+%m/%d @ %l:%M%p")${idsCL[Default]}"
fi
fi
((t++))
done
else
echo -en "Pulling data ... "
echo -e "${idsCL[LightCyan]} ${vHOSTNAME}${spc}${idsCL[Default]}: No Data"
fi
reading=$(CHECKTEMPSENSOR ${SENSOR} . . . . ${avgdays})
echo -e "\r\033[K${idsCL[White]}${idsST[Bold]}${SENSOR}${idsST[Reset]}${spc}${idsCL[Default]}: ${reading}${idsCL[Default]}"
else
echo -e "\r\033[K${idsCL[White]}${idsST[Bold]}${SENSOR}${idsST[Reset]}${spc}${idsCL[Default]}: ${idsCL[Yellow]}Sensor Offline${idsCL[Default]}"
else #host down
echo -e "\r\033[K${idsCL[LightRed]}${SENSOR} Host is down${idsCL[Default]}"
# if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.down ] || [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/${SENSOR}.down)) -ge 1800 ]; then
# SENDNOTICE "${vHOSTiDRACIP} ERROR" "${vHOSTNAME} Host is down" 1
# echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${vHOSTiDRACIP} - ${vHOSTNAME} Host is down" >> ${logtemp}
# touch ${PW_TMPFOLDER}/${EHOST}.down
# fi
fi
echo
last_sensor=${SENSOR%%-*}
fi
# fi
echo
fi
done
rm -f ${PW_TMPFOLDER}/.fanspeed.*