From bee6f81f439c2363dadd1fbeaad35dbdb463bb64 Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Mon, 6 Nov 2023 21:17:18 -0600 Subject: [PATCH] Update powerwall.sh --- powerwall.sh | 65 +++++++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/powerwall.sh b/powerwall.sh index a4c1d0f4..d3ee3dff 100755 --- a/powerwall.sh +++ b/powerwall.sh @@ -521,7 +521,7 @@ CHECKPOWER(){ start=`date +%s` rm -f ${PW_TMPFOLDER}/*.hostpower* - if [ "${1}" == "" ] || [ "${1}" == "mainsite" ]; then + if [ "${1}" == "" ] || [ "${1}" == "all" ] || [ "${1}" == "mainsite" ]; then echo DIVIDER . yellow 75 echo -e "${idsCL[Yellow]}Mainsite Power Information" @@ -597,7 +597,7 @@ CHECKPOWER(){ fi - if [ "${1}" == "" ] || [ "${1}" == "offsite" ]; then + if [ "${1}" == "" ] || [ "${1}" == "all" ] || [ "${1}" == "offsite" ]; then DIVIDER . yellow 75 @@ -641,37 +641,35 @@ CHECKPOWER(){ fi - # if [ "${1}" == "" ] || [ "${1}" == "hosts" ]; then - DIVIDER . yellow 75 - echo -e "${idsCL[Yellow]}ESXi Host Power Information" - DIVIDER . yellow 75 - - for SENSOR in ${PW_SENSOR_ORD[@]}; do - if [ "${PW_HOST_IDRACS[${SENSOR}]}" != "" ]; then - gochk=0 - if [ "${1}" == "" ] || [ "${1}" == "hosts" ] || ([ "${1}" == "mainsite" ] && [[ "${PW_HOST_IDRACS[${SENSOR}]}" = *"10.10."* ]]) || ([ "${1}" == "offsite" ] && [[ "${PW_HOST_IDRACS[${SENSOR}]}" = *"10.2.1."* ]]); then - gochk=1 - fi - if [ ${gochk} -eq 1 ]; then - 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 - s=1 - for ss in "${HOST_WATT_SENSORS[@]}"; do - [[ "${ss}" = *"System Board"* ]] && break || ((s++)) - done - 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/.*: //') - fi - [[ "${HOST_WATTS}" = *"Timeout"* ]] && HOST_WATTS_disp="${idsCL[LightRed]}Host Offline" || HOST_WATTS_disp="${idsCL[Green]}${HOST_WATTS}'watts" - echo -e "${idsCL[LightCyan]}${SENSOR} ${idsCL[Default]}: ${HOST_WATTS_disp}${idsCL[Default]}" - fi + DIVIDER . yellow 75 + echo -e "${idsCL[Yellow]}ESXi Host Power Information" + DIVIDER . yellow 75 + + for SENSOR in ${PW_SENSOR_ORD[@]}; do + if [ "${PW_HOST_IDRACS[${SENSOR}]}" != "" ]; then + gochk=0 + if [ "${1}" == "" ] || [ "${1}" == "hosts" ] || ([ "${1}" == "mainsite" ] && [[ "${PW_HOST_IDRACS[${SENSOR}]}" = *"10.10."* ]]) || ([ "${1}" == "offsite" ] && [[ "${PW_HOST_IDRACS[${SENSOR}]}" = *"10.2.1."* ]]); then + gochk=1 fi - done + if [ ${gochk} -eq 1 ]; then + 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 + s=1 + for ss in "${HOST_WATT_SENSORS[@]}"; do + [[ "${ss}" = *"System Board"* ]] && break || ((s++)) + done + 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/.*: //') + fi + [[ "${HOST_WATTS}" = *"Timeout"* ]] && HOST_WATTS_disp="${idsCL[LightRed]}Host Offline" || HOST_WATTS_disp="${idsCL[Green]}${HOST_WATTS}'watts" + echo -e "${idsCL[LightCyan]}${SENSOR} ${idsCL[Default]}: ${HOST_WATTS_disp}${idsCL[Default]}" + fi + fi + done - # fi end=`date +%s`; runtime=$((end-start)); echo -e "\nruntime: ${runtime}" [ "${action}" != "" ] && echo @@ -1610,8 +1608,13 @@ fi echo -e "${idsCL[White]} Usage: ${idsCL[LightCyan]}powerwall {option}" echo echo -e " ${idsCL[Yellow]}status ${idsCL[Default]}--> PowerWall Status Information" + echo -e " ${idsCL[Yellow]}check {type} {opt} ${idsCL[Default]}--> Check Temperature Sensors" + echo -e " ${idsCL[LightYellow]} type = { all / temp / power }${idsCL[Default]} --> Defaults to All" + echo -e " ${idsCL[LightYellow]} opt = { start / stop / restart / status }" + echo -e " ${idsCL[Yellow]}checktemp {searchstring} ${idsCL[Default]}--> Check Temperature Sensors" echo -e " ${idsCL[Yellow]}checkpower {avg} ${idsCL[Default]}--> Check Power Readings" + echo -e " ${idsCL[LightYellow]} avg = { noavg='Does not display average' / " echo -e " #='Num of days for avg' }${idsCL[Default]} --> Defaults to 3 days avg" echo