From 8571a82b8ffb8ea37412681026017632f3868557 Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Tue, 30 Jan 2024 14:46:04 -0600 Subject: [PATCH] Update temp.inc.sh --- inc/temp.inc.sh | 77 +++++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 37 deletions(-) diff --git a/inc/temp.inc.sh b/inc/temp.inc.sh index 87eca239..161df3bc 100644 --- a/inc/temp.inc.sh +++ b/inc/temp.inc.sh @@ -35,6 +35,7 @@ CHECKTEMP(){ -a|-avg) avgdays=${2};; -S|-sensors) temptype="sensors";; -e|-esxi) temptype="esxi";; + -f|-fans) temptype="fans";; -s|-search) search=${2};; esac shift 1 @@ -68,7 +69,7 @@ CHECKTEMP(){ if [ "${search}" == "" ] || [[ "${SENSOR,,}" = *"${search,,}"* ]]; then - if [ "${PW_SENSOR_TYPE[${SENSOR}]}" == "esxi" ] && [ "${temptype}" != "sensors" ]; then + if ([ "${PW_SENSOR_TYPE[${SENSOR}]}" == "esxi" ] || [ "${PW_SENSOR_TYPE[${SENSOR}]}" == "fans" ]) && [ "${temptype}" != "sensors" ]; then vHOSTiDRACIP=${PW_HOST_IDRACS[${SENSOR}]} vHOSTIP=${PW_HOST_ADDRESSES[${SENSOR}]} vHOSTNAME=${PW_ESXI_HOST_NAMES[${vHOSTiDRACIP}]} @@ -102,47 +103,49 @@ CHECKTEMP(){ else echo -e "${idsCL[Default]}" fi - DIVIDER . lightCyan 70 - echo -en "${idsCL[Yellow]}Pulling data for '${SENSOR}' ... " + if [ "${PW_SENSOR_TYPE[${SENSOR}]}" == "esxi" ]; 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 - 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` + # 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 + 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 + 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}) - [ "${avgdays}" != "noavg" ] && echo -en "\r\033[K" - echo -e "${idsCL[LightCyan]} ${sensorname}${spc}${idsCL[Default]}: ${reading}" + [ "${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}) + [ "${avgdays}" != "noavg" ] && echo -en "\r\033[K" + echo -e "${idsCL[LightCyan]} ${sensorname}${spc}${idsCL[Default]}: ${reading}" - ((t++)) - done - else - echo -e "${idsCL[LightCyan]} ${vHOSTNAME}${spc}${idsCL[Default]}: No Data" + ((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 - - 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 fi