From 6ec1a86ca1d9dd05aff90543811d2fbc73c9a069 Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Sat, 4 Nov 2023 10:56:44 -0500 Subject: [PATCH] update --- defaults.inc | 2 +- powerwall.sh | 53 ++++++++++++++++++++++++++-------------------------- 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/defaults.inc b/defaults.inc index 2b81d769..a0dc099e 100755 --- a/defaults.inc +++ b/defaults.inc @@ -58,7 +58,7 @@ PW_REMOTE_SENSORS['ServerRoomTH']='10.10.20.10' PW_REMOTE_SENSORS['OctoPI-CPU']='10.10.1.80' #PW_SENSOR_ORD=(ServerRoomTH Powerwall-CPU OctoPI-CPU iDS-vMS-Host0 iDS-vMS-Host1 iDS-vMS-Host6 iDS-vMS-Host7 OFF-vMS-Host1) -PW_SENSOR_ORD=(iDS-vMS-Host1) +PW_SENSOR_ORD=(iDS-vMS-Host0) declare -A PW_SENSOR_ID PW_SENSOR_ID['ServerRoomTH']='2' diff --git a/powerwall.sh b/powerwall.sh index 10ac2970..36fc6615 100755 --- a/powerwall.sh +++ b/powerwall.sh @@ -34,42 +34,41 @@ CHECKTEMP(){ vHOSTNAME=${PW_ESXI_HOST_NAMES[${vHOSTiDRACIP}]} echo -e "\r\033[K${idsCL[LightCyan]}${idsST[Bold]}${SENSOR} Host Sensors ${idsST[Reset]}${idsCL[LightCyan]}- ${vHOSTiDRACIP}${idsCL[Default]}" [ "${1}" != "noavg" ] && echo -en "${idsCL[Yellow]}Pulling data and calculating averages for '${SENSOR}' ..." || echo -en "${idsCL[Yellow]}Pulling data for '${SENSOR}' ..." - if [ "$(CHECK_HOST ${vHOSTIP})" != "false" ] && [ "${RACADMONLINE}" != "false" ]; then - vHOSTDATA=$(ssh root@${PW_RACADM_ACCESS} racadm -r ${vHOSTiDRACIP} -u ${PW_ESXI_USER} -p "'${PW_ESXI_PASS}'" getsensorinfo | grep " Temp" 2>&1) + + if [ "$(CHECK_HOST ${vHOSTIP})" != "false" ]; 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') - # iDS-vMS-Offsite Fan Issue Workaround - if [ "${vHOSTiDRACIP}" == "10.2.1.21" ]; then - vHOSTFAN=$(ssh root@${PW_RACADM_ACCESS} racadm -r ${vHOSTiDRACIP} -u ${PW_ESXI_USER} -p "'${PW_ESXI_PASS}'" getsensorinfo | grep "System Board Fan1" 2>&1) - FanSpeed=$(echo ${vHOSTFAN} | awk '/ / {print $8}' | sed -e 's/%//g') - if [ ${FanSpeed} -gt 90 ]; then - SENDNOTICE "${vHOSTiDRACIP} Fan Issue" "Workaround commands sent to set the Fans at 30%" 1 - run=$(ipmitool -I lanplus -H ${vHOSTiDRACIP} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x01 0x00) - run=$(ipmitool -I lanplus -H ${vHOSTiDRACIP} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x02 0xff 0x1E) - fi - - fi + # # iDS-vMS-Offsite Fan Issue Workaround + # if [ "${vHOSTiDRACIP}" == "10.2.1.21" ]; then + # vHOSTFAN=$(ssh root@${PW_RACADM_ACCESS} racadm -r ${vHOSTiDRACIP} -u ${PW_ESXI_USER} -p "'${PW_ESXI_PASS}'" getsensorinfo | grep "System Board Fan1" 2>&1) + # FanSpeed=$(echo ${vHOSTFAN} | awk '/ / {print $8}' | sed -e 's/%//g') + # if [ ${FanSpeed} -gt 90 ]; then + # SENDNOTICE "${vHOSTiDRACIP} Fan Issue" "Workaround commands sent to set the Fans at 30%" 1 + # run=$(ipmitool -I lanplus -H ${vHOSTiDRACIP} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x01 0x00) + # run=$(ipmitool -I lanplus -H ${vHOSTiDRACIP} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x02 0xff 0x1E) + # fi + # + # fi - IFS=$'\n' read -rd '' -a vHOSTDATA <<<"${vHOSTDATA}"; unset IFS + IFS=$'\n' read -rd '' -a vHOST_TEMPNAMES <<<"${vHOST_TEMPNAMES}"; unset IFS echo -en "\r\033[K" - if [ ${#vHOSTDATA[@]} > 1 ]; then - for sensordata in "${vHOSTDATA[@]}"; do - vSENSOR=$(echo ${sensordata} | cut -d'T' -f1 | xargs) - temp_c=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $2}' | sed -e 's/C//g'); temp_c=${temp_c/ /} + if [ ${#vHOST_TEMPNAMES[@]} > 1 ]; then + t=1 + for sensorname in "${vHOST_TEMPNAMES[@]}"; do + temp_c=$(snmpwalk -v 1 -c public -t 2 10.10.2.20 .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=2; ${temp_c}/10" | bc` temp_warn=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $7}' | sed -e 's/C//g'); temp_warn=${temp_warn/ /} temp_crit=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $4}' | sed -e 's/C//g'); temp_crit=${temp_crit/ /} + + reading=$(CHECKTEMPSENSOR ${SENSOR} ${temp_c} ${temp_warn} ${temp_crit} ${sensorname// /_} ${1}) + c=0; spc=''; spc1=`expr ${cw} - ${#sensorname} - 1`; until [ ${c} = ${spc1} ]; do spc="${spc} "; c=`expr ${c} + 1`; done + echo -e "${idsCL[LightCyan]} ${sensorname}${spc}${idsCL[Default]}: ${reading}" - # echo "HERE: ${SENSOR} (${PW_SENSOR_ID[${SENSOR}]}) - ${vSENSOR// /_}" - - reading=$(CHECKTEMPSENSOR ${SENSOR} ${temp_c} ${temp_warn} ${temp_crit} ${vSENSOR// /_} ${1}) - c=0; spc=''; spc1=`expr ${cw} - ${#vSENSOR} - 1`; until [ ${c} = ${spc1} ]; do spc="${spc} "; c=`expr ${c} + 1`; done - echo -e "${idsCL[LightCyan]} ${vSENSOR}${spc}${idsCL[Default]}: ${reading}" - + ((t++)) done else - echo -e "${idsCL[LightCyan]} ${vSENSOR}${spc}${idsCL[Default]}: No Data" + echo -e "${idsCL[LightCyan]} ${vHOSTNAME}${spc}${idsCL[Default]}: No Data" fi - elif [ "${RACADMONLINE}" == "false" ]; then - echo -e "\r\033[K${idsCL[Red]}${SENSOR} RACADM is down" else #host down echo -e "\r\033[K${idsCL[Red]}${SENSOR} Host is down"