From 89338c4ee54a66056205a8cb39d0f8624d7a2946 Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Sun, 3 Dec 2023 12:01:24 -0600 Subject: [PATCH] Update powerwall.sh --- powerwall.sh | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/powerwall.sh b/powerwall.sh index 417a5545..9df1fdaf 100755 --- a/powerwall.sh +++ b/powerwall.sh @@ -740,20 +740,18 @@ CHECKPOWER(){ if [ ${gochk} -eq 1 ]; then echo -en "${idsCL[Yellow]}Pulling data for '${SENSOR}' ... " - # HOST_WATTS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.6.1.3 | sed 's/.*: //') - # if [ "${HOST_WATTS}" = "" ]; then - HOST_WATT_SENSORS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.8.1 -O vq | sed -e 's/"//g') - IFS=$'\n' - read -rd '' -a HOST_WATT_SENSORS <<<"${HOST_WATT_SENSORS}" - unset IFS + HOST_WATT_SENSORS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.8.1 -O vq | sed -e 's/"//g') + IFS=$'\n' + read -rd '' -a HOST_WATT_SENSORS <<<"${HOST_WATT_SENSORS}" + unset IFS + if [[ "${HOST_WATT_SENSORS}" != *"Timeout"* ]]; then found=0; PS1='0.0'; PS2='0.0' for s in {1..5}; do DP=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.8.1.${s} | sed 's/.*: //') if [[ "${DP}" = *"System Board"* ]]; then found=1 HOST_WATTS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.6.1.${s} | sed 's/.*: //') - # break - + elif [[ "${DP}" = *"PS1"* ]]; then PS1=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.6.1.${s} | sed 's/.*: //') elif [[ "${DP}" = *"PS2"* ]]; then @@ -765,18 +763,22 @@ CHECKPOWER(){ [ "${PS2}" != "0.0" ] && PS2=`echo "scale=1; ${PS2}/10" | bc` && (( $(bc <<<"${PS2} < 1") )) && [[ "${PS2}" = *"."* ]] && PS2="0${PS2}" HOST_AMPS=`echo "scale=1; ${PS1}+${PS2}" | bc` [[ "${HOST_WATTS}" = *"Timeout"* ]] && HOST_WATTS_disp="${idsCL[LightRed]}Host Offline" || HOST_WATTS_disp="${idsCL[Green]}${HOST_AMPS}'amps - `IDS_NUMBER_FORMAT ${HOST_WATTS}`'watts" - + elif [ "$(ipmitool -I lanplus -H ${PW_HOST_IDRACS[${SENSOR}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" chassis power status | grep off)" != "" ]; then - HOST_WATTS_disp="${idsCL[LightRed]}Host offline" - + HOST_WATTS_disp="${idsCL[LightRed]}Host powered down" + elif [ "${HOST_WATTS}" == "0" ]; then HOST_WATTS_disp="${idsCL[Yellow]}Host PSU not capable" - + else HOST_WATTS_disp="${idsCL[LightRed]}Could not pull data" - + fi - # fi + + else + HOST_WATTS_disp="${idsCL[LightRed]}Host offline" + fi + MSG="${idsCL[White]}${SENSOR} ${idsCL[Default]}: ${HOST_WATTS_disp}" echo -en "\r\033[K${MSG}"