From 4dbaccd8cc10b1ff1899ff31053e20647a89098d Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Tue, 30 Jan 2024 21:40:51 -0600 Subject: [PATCH] update --- defaults.inc | 2 +- inc/temp.inc.sh | 77 ++++++++++++++++++++++++------------------------- 2 files changed, 39 insertions(+), 40 deletions(-) diff --git a/defaults.inc b/defaults.inc index 19b369cf..ca0d48b9 100755 --- a/defaults.inc +++ b/defaults.inc @@ -1,6 +1,6 @@ #!/usr/bin/env bash -VERS='2.5.211-01302024' +VERS='2.5.212-01302024' noheader=' update service dailytemp confsync -r -report ' diff --git a/inc/temp.inc.sh b/inc/temp.inc.sh index ac021b33..a543bcd4 100644 --- a/inc/temp.inc.sh +++ b/inc/temp.inc.sh @@ -476,7 +476,7 @@ CHECKTEMP_SERVICE_RUNSENSOR(){ t=1 ####### Grab Fan Speeds ####### - if [ ! -f ${PW_TMPFOLDER}/${SENSORa}.down ]; then + if [ ! -f ${PW_TMPFOLDER}/${SENSORa}.down ] && ([ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa} ] || [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/.lastfancheck/${SENSORa})) -ge 300 ]); then # vHOSTFAN=$(snmpwalk -v 1 -c public -t 2 ${PW_HOST_IDRACS[${SENSORa}]} .1.3.6.1.4.1.674.10892.5.4.700.12.1.6.1.3 -O vq) vHOSTFAN=$(ssh -q -o ConnectTimeout=3 -o ConnectionAttempts=1 root@${PW_RACADM_ACCESS} racadm -r ${PW_HOST_IDRACS[${SENSORa}]} -u ${PW_ESXI_USER} -p "'${PW_ESXI_PASS}'" getsensorinfo | grep "System Board Fan3" 2>&1) if [ "${vHOSTFAN}" != "" ]; then @@ -490,6 +490,8 @@ CHECKTEMP_SERVICE_RUNSENSOR(){ else FanSpeed='' fi + else + FanSpeed='' fi else SENSORS_CHECK=(${SENSORa}) @@ -621,44 +623,41 @@ CHECKTEMP_SERVICE_RUNSENSOR(){ ##### ESXI FAN CONTROL ##### elif [[ "${PW_ESXI_FANSPEEDCONTROL_HOSTS}" = *"${PW_HOST_IDRACS[${SENSORa}]}"* ]] && [[ "${vSENSOR}" = *"Exhaust"* ]] && [ "${FanSpeed}" != "" ]; then - if [ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set ] || [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set)) -ge 300 ]; then - # echo "${temp_f} -- scale=2; ${DEFAULT_ESXI_EXHAUST_MIN}+${ESXI_FANSPEED_GL_ZONE} - ${GL_HIGH} - ${GL_LOW}" - ### GOLDILOCK ZONE ### - if (( $(bc <<< "${temp_f} >= ${GL_LOW}") )) && (( $(bc <<< "${temp_f} <= ${GL_HIGH}") )); then - if [ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl ] && [ -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set)) -ge 3600 ]; then - SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} FAN CONTROL" "Goldilock Zone Found at ${FanSpeed}%" - echo "${FanSpeed}" >| ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSORa} - Goldilock Zone Found (1HR)" >> ${logtemp} - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSORa} - Goldilock Zone Found (1HR)" >> ${PW_LOGFOLDER}/esxi-fanspeeds.log - - elif [ -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl ] && [ ${FanSpeed} -gt ${DEFAULT_ESXI_FANSPEED} ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl)) -ge 10800 ]; then - SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} FAN CONTROL" "DAAAMMMNN GOLDIE!!!! Decreasing by 5 $(expr ${FanSpeed} - 5) -> ${FanSpeed}%" - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSORa} - DAAAMMMNN GOLDIE!!!! Decreasing by 5 $(expr ${FanSpeed} - 5) -> ${FanSpeed}%" >> ${logtemp} - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSORa} - DAAAMMMNN GOLDIE!!!! Decreasing by 5 $(expr ${FanSpeed} - 5) -> ${FanSpeed}%" >> ${PW_LOGFOLDER}/esxi-fanspeeds.log - SET_ESXI_FANSPEED $(expr $(cat ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set) - 5) ${SENSORa} >/dev/null 2>&1 & - - elif [ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set ]; then - SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} FanSpeed Control" "Defaulting FanSpeeds to ${DEFAULT_ESXI_FANSPEED}%" - SET_ESXI_FANSPEED ${DEFAULT_ESXI_FANSPEED} ${SENSORa} >/dev/null 2>&1 & - fi - ### INCREASING ### - elif (( $(bc <<< "${temp_f} >= ${DEFAULT_ESXI_EXHAUST_MIN}") )); then - (( $(bc <<< "${temp_f} >= $(expr ${DEFAULT_ESXI_EXHAUST_MIN} + 5)") )) && FAN_INCREASE=10 || FAN_INCREASE=5 - [ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set ] && NEW_FanSpeed=$(expr ${DEFAULT_ESXI_FANSPEED} + ${FAN_INCREASE}) || NEW_FanSpeed=$(expr $(cat ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set) + ${FAN_INCREASE}) - if [ ${NEW_FanSpeed} -le 104 ] && [ ${FanSpeed} -ne 100 ]; then - [ ${NEW_FanSpeed} -gt 100 ] && NEW_FanSpeed=100 - [ ${NEW_FanSpeed} -ge 70 ] && SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} Exhaust Warm" "Increasing fans to ${NEW_FanSpeed}%" - SET_ESXI_FANSPEED ${NEW_FanSpeed} ${SENSORa} >/dev/null 2>&1 & - fi - ### DECREASING ### - else - (( $(bc <<< "${temp_f} <= $(expr ${DEFAULT_ESXI_EXHAUST_MIN} - 5)") )) && FAN_DECREASE=10 || FAN_DECREASE=5 - [ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set ] && NEW_FanSpeed=$(expr ${DEFAULT_ESXI_FANSPEED}) || NEW_FanSpeed=$(expr $(cat ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set) - ${FAN_DECREASE}) - if [ ${NEW_FanSpeed} -ge $(expr ${DEFAULT_ESXI_FANSPEED} - 4) ] && [ ${FanSpeed} -ne ${DEFAULT_ESXI_FANSPEED} ]; then - [ ${NEW_FanSpeed} -lt ${DEFAULT_ESXI_FANSPEED} ] && NEW_FanSpeed=${DEFAULT_ESXI_FANSPEED} - [ ${NEW_FanSpeed} -ge 65 ] && SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} Exhaust Cooling" "Decreasing fans to ${NEW_FanSpeed}%" - SET_ESXI_FANSPEED ${NEW_FanSpeed} ${SENSORa} >/dev/null 2>&1 & - fi + ### GOLDILOCK ZONE ### + if (( $(bc <<< "${temp_f} >= ${GL_LOW}") )) && (( $(bc <<< "${temp_f} <= ${GL_HIGH}") )); then + if [ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl ] && [ -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set)) -ge 3600 ]; then + SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} FAN CONTROL" "Goldilock Zone Found at ${FanSpeed}%" + echo "${FanSpeed}" >| ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl + echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSORa} - Goldilock Zone Found (1HR)" >> ${logtemp} + echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSORa} - Goldilock Zone Found (1HR)" >> ${PW_LOGFOLDER}/esxi-fanspeeds.log + + elif [ -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl ] && [ ${FanSpeed} -gt ${DEFAULT_ESXI_FANSPEED} ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl)) -ge 10800 ]; then + SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} FAN CONTROL" "DAAAMMMNN GOLDIE!!!! Decreasing by 5 $(expr ${FanSpeed} - 5) -> ${FanSpeed}%" + echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSORa} - DAAAMMMNN GOLDIE!!!! Decreasing by 5 $(expr ${FanSpeed} - 5) -> ${FanSpeed}%" >> ${logtemp} + echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSORa} - DAAAMMMNN GOLDIE!!!! Decreasing by 5 $(expr ${FanSpeed} - 5) -> ${FanSpeed}%" >> ${PW_LOGFOLDER}/esxi-fanspeeds.log + SET_ESXI_FANSPEED $(expr $(cat ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set) - 5) ${SENSORa} >/dev/null 2>&1 & + + elif [ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set ]; then + SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} FanSpeed Control" "Defaulting FanSpeeds to ${DEFAULT_ESXI_FANSPEED}%" + SET_ESXI_FANSPEED ${DEFAULT_ESXI_FANSPEED} ${SENSORa} >/dev/null 2>&1 & + fi + ### INCREASING ### + elif (( $(bc <<< "${temp_f} >= ${DEFAULT_ESXI_EXHAUST_MIN}") )); then + (( $(bc <<< "${temp_f} >= $(expr ${DEFAULT_ESXI_EXHAUST_MIN} + 5)") )) && FAN_INCREASE=10 || FAN_INCREASE=5 + [ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set ] && NEW_FanSpeed=$(expr ${DEFAULT_ESXI_FANSPEED} + ${FAN_INCREASE}) || NEW_FanSpeed=$(expr $(cat ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set) + ${FAN_INCREASE}) + if [ ${NEW_FanSpeed} -le 104 ] && [ ${FanSpeed} -ne 100 ]; then + [ ${NEW_FanSpeed} -gt 100 ] && NEW_FanSpeed=100 + [ ${NEW_FanSpeed} -ge 70 ] && SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} Exhaust Warm" "Increasing fans to ${NEW_FanSpeed}%" + SET_ESXI_FANSPEED ${NEW_FanSpeed} ${SENSORa} >/dev/null 2>&1 & + fi + ### DECREASING ### + else + (( $(bc <<< "${temp_f} <= $(expr ${DEFAULT_ESXI_EXHAUST_MIN} - 5)") )) && FAN_DECREASE=10 || FAN_DECREASE=5 + [ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set ] && NEW_FanSpeed=$(expr ${DEFAULT_ESXI_FANSPEED}) || NEW_FanSpeed=$(expr $(cat ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set) - ${FAN_DECREASE}) + if [ ${NEW_FanSpeed} -ge $(expr ${DEFAULT_ESXI_FANSPEED} - 4) ] && [ ${FanSpeed} -ne ${DEFAULT_ESXI_FANSPEED} ]; then + [ ${NEW_FanSpeed} -lt ${DEFAULT_ESXI_FANSPEED} ] && NEW_FanSpeed=${DEFAULT_ESXI_FANSPEED} + [ ${NEW_FanSpeed} -ge 65 ] && SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} Exhaust Cooling" "Decreasing fans to ${NEW_FanSpeed}%" + SET_ESXI_FANSPEED ${NEW_FanSpeed} ${SENSORa} >/dev/null 2>&1 & fi fi elif [[ "${PW_ESXI_FANSPEEDCONTROL_HOSTS}" != *"${PW_HOST_IDRACS[${SENSORa}]}"* ]] && [[ "${vSENSOR}" = *"Exhaust"* ]]; then