diff --git a/defaults.inc b/defaults.inc index 667fef59..2b5fb8c1 100755 --- a/defaults.inc +++ b/defaults.inc @@ -1,6 +1,6 @@ #!/usr/bin/env bash -VERS='2.5.232-02012024' +VERS='2.5.234-02012024' noheader=' update service dailytemp confsync -r -report ' diff --git a/inc/temp.inc.sh b/inc/temp.inc.sh index 90c04942..4ae12f5c 100644 --- a/inc/temp.inc.sh +++ b/inc/temp.inc.sh @@ -47,11 +47,11 @@ CHECKTEMP(){ GET_HOST_FANSPEED ${ESXIHOST} ${cdt} fi done - [ "${PW_DEFAULT_ESXI_FANSPEED}" != "" ] && DEFAULT_ESXI_FANSPEED=${PW_DEFAULT_ESXI_FANSPEED} || DEFAULT_ESXI_FANSPEED=30 - [ "${PW_DEFAULT_ESXI_EXHAUST_MIN}" != "" ] && DEFAULT_ESXI_EXHAUST_MIN=${PW_DEFAULT_ESXI_EXHAUST_MIN} || DEFAULT_ESXI_EXHAUST_MIN=85 + [ "${PW_ESXI_DEF_FANSPEED}" != "" ] && ESXI_DEF_FANSPEED=${PW_ESXI_DEF_FANSPEED} || ESXI_DEF_FANSPEED=30 + [ "${PW_ESXI_DEF_EXHAUST_MIN}" != "" ] && ESXI_DEFAULT_EXHAUST_MIN=${PW_ESXI_DEF_EXHAUST_MIN} || ESXI_DEFAULT_EXHAUST_MIN=85 [ "${PW_ESXI_FANSPEED_GL_ZONE}" != "" ] && ESXI_FANSPEED_GL_ZONE=${PW_ESXI_FANSPEED_GL_ZONE} || ESXI_FANSPEED_GL_ZONE=2.5 - GL_HIGH=$(bc <<< "scale=2; ${DEFAULT_ESXI_EXHAUST_MIN}+${ESXI_FANSPEED_GL_ZONE}") - GL_LOW=$(bc <<< "scale=2; ${DEFAULT_ESXI_EXHAUST_MIN}-${ESXI_FANSPEED_GL_ZONE}") + GL_HIGH=$(bc <<< "scale=2; ${ESXI_DEFAULT_EXHAUST_MIN}+${ESXI_FANSPEED_GL_ZONE}") + GL_LOW=$(bc <<< "scale=2; ${ESXI_DEFAULT_EXHAUST_MIN}-${ESXI_FANSPEED_GL_ZONE}") fi echo if [ "${avgdays}" != "" ]; then @@ -186,7 +186,7 @@ CHECKTEMP(){ else FSC="${idsCL[LightYellow]}" fi - echo -e " Golidlock Zone : ${idsCL[LightGreen]}${DEFAULT_ESXI_EXHAUST_MIN}°F (±${ESXI_FANSPEED_GL_ZONE}°F) ${idsCL[Default]}[ ${idsCL[Green]}${GL_LOW}°F${idsCL[Default]} <--> ${idsCL[LightYellow]}${GL_HIGH}°F${idsCL[Default]} ]" + echo -e " Golidlock Zone : ${idsCL[LightGreen]}${ESXI_DEFAULT_EXHAUST_MIN}°F (±${ESXI_FANSPEED_GL_ZONE}°F) ${idsCL[Default]}[ ${idsCL[Green]}${GL_LOW}°F${idsCL[Default]} <--> ${idsCL[LightYellow]}${GL_HIGH}°F${idsCL[Default]} ]" echo -e " Last checked : ${idsCL[LightCyan]}$(date -r ${PW_TMPFOLDER}/.lastfancheck/${SENSOR} "+%m/%d @ %l:%M%p")${idsCL[Default]}" echo -e " Last set : ${FSC}$(date -r ${PW_TMPFOLDER}/.lastfancheck/${SENSOR}.set "+%m/%d @ %l:%M%p")${idsCL[Default]}" fi @@ -342,7 +342,7 @@ CHECKTEMPSENSOR(){ [ "${average}" != "" ] && echo -en " /${spca}${averagedisp}${GAUGESH}" # if [ "${7}" == "fans" ]; then -# echo -en "${idsCL[Default]}${spc}[${idsCL[LightGreen]}${GL_LOW}${GAUGESH}${idsCL[Default]}/${idsCL[Green]}${DEFAULT_ESXI_EXHAUST_MIN}${GAUGESH}${idsCL[Default]}/${idsCL[LightYellow]}${GL_HIGH}${GAUGESH}${idsCL[Default]}]" +# echo -en "${idsCL[Default]}${spc}[${idsCL[LightGreen]}${GL_LOW}${GAUGESH}${idsCL[Default]}/${idsCL[Green]}${ESXI_DEFAULT_EXHAUST_MIN}${GAUGESH}${idsCL[Default]}/${idsCL[LightYellow]}${GL_HIGH}${GAUGESH}${idsCL[Default]}]" # # el if [[ "${1}" != *"FAN"* ]]; then @@ -468,11 +468,11 @@ CHECKTEMP_SERVICE_RUNSENSOR(){ touch ${PW_TMPFOLDER}/ztemprun.${SENSORa}.running source ${PW_FOLDER}/defaults.inc - [ "${PW_DEFAULT_ESXI_FANSPEED}" != "" ] && DEFAULT_ESXI_FANSPEED=${PW_DEFAULT_ESXI_FANSPEED} || DEFAULT_ESXI_FANSPEED=30 - [ "${PW_DEFAULT_ESXI_EXHAUST_MIN}" != "" ] && DEFAULT_ESXI_EXHAUST_MIN=${PW_DEFAULT_ESXI_EXHAUST_MIN} || DEFAULT_ESXI_EXHAUST_MIN=85 + [ "${PW_ESXI_DEF_FANSPEED}" != "" ] && ESXI_DEF_FANSPEED=${PW_ESXI_DEF_FANSPEED} || ESXI_DEF_FANSPEED=30 + [ "${PW_ESXI_DEF_EXHAUST_MIN}" != "" ] && ESXI_DEFAULT_EXHAUST_MIN=${PW_ESXI_DEF_EXHAUST_MIN} || ESXI_DEFAULT_EXHAUST_MIN=85 [ "${PW_ESXI_FANSPEED_GL_ZONE}" != "" ] && ESXI_FANSPEED_GL_ZONE=${PW_ESXI_FANSPEED_GL_ZONE} || ESXI_FANSPEED_GL_ZONE=2.5 - GL_HIGH=$(bc <<< "scale=2; ${DEFAULT_ESXI_EXHAUST_MIN}+${ESXI_FANSPEED_GL_ZONE}") - GL_LOW=$(bc <<< "scale=2; ${DEFAULT_ESXI_EXHAUST_MIN}-${ESXI_FANSPEED_GL_ZONE}") + GL_HIGH=$(bc <<< "scale=2; ${ESXI_DEFAULT_EXHAUST_MIN}+${ESXI_FANSPEED_GL_ZONE}") + GL_LOW=$(bc <<< "scale=2; ${ESXI_DEFAULT_EXHAUST_MIN}-${ESXI_FANSPEED_GL_ZONE}") [ ! -f ${logtemp} ] && touch ${logtemp} [ -f ${PW_TMPFOLDER}/ztemprun.${SENSORa}.done ] && rm -f ${PW_TMPFOLDER}/ztemprun.${SENSORa}.done @@ -649,31 +649,31 @@ CHECKTEMP_SERVICE_RUNSENSOR(){ 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 + # elif [ -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl ] && [ ${FanSpeed} -gt ${ESXI_DEF_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 & + SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} FanSpeed Control" "Defaulting FanSpeeds to ${ESXI_DEF_FANSPEED}%" + SET_ESXI_FANSPEED ${ESXI_DEF_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}%" + elif (( $(bc <<< "${temp_f} >= ${ESXI_DEFAULT_EXHAUST_MIN}") )); then + (( $(bc <<< "${temp_f} >= $(expr ${ESXI_DEFAULT_EXHAUST_MIN} + 5)") )) && FAN_INCREASE=10 || FAN_INCREASE=5 + [ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set ] && NEW_FanSpeed=$(expr ${ESXI_DEF_FANSPEED} + ${FAN_INCREASE}) || NEW_FanSpeed=$(expr $(cat ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set) + ${FAN_INCREASE}) + if [ ${NEW_FanSpeed} -le $(expr ${PW_ESXI_MAX_FANSPEED} + 4) ] && [ ${FanSpeed} -ne ${PW_ESXI_MAX_FANSPEED} ]; then + [ ${NEW_FanSpeed} -gt ${PW_ESXI_MAX_FANSPEED} ] && NEW_FanSpeed=${PW_ESXI_MAX_FANSPEED} + [ ${NEW_FanSpeed} -ge 60 ] && 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} + (( $(bc <<< "${temp_f} <= $(expr ${ESXI_DEFAULT_EXHAUST_MIN} - 5)") )) && FAN_DECREASE=10 || FAN_DECREASE=5 + [ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set ] && NEW_FanSpeed=$(expr ${ESXI_DEF_FANSPEED}) || NEW_FanSpeed=$(expr $(cat ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set) - ${FAN_DECREASE}) + if [ ${NEW_FanSpeed} -ge $(expr ${ESXI_DEF_FANSPEED} - 4) ] && [ ${FanSpeed} -ne ${ESXI_DEF_FANSPEED} ]; then + [ ${NEW_FanSpeed} -lt ${ESXI_DEF_FANSPEED} ] && NEW_FanSpeed=${ESXI_DEF_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 @@ -873,14 +873,14 @@ Previous Temp: ${last_temp}${GAUGESH}" } SET_ESXI_FANSPEED(){ - [ "${PW_DEFAULT_ESXI_FANSPEED}" != "" ] && DEFAULT_ESXI_FANSPEED=${PW_DEFAULT_ESXI_FANSPEED} || DEFAULT_ESXI_FANSPEED=30 + [ "${PW_ESXI_DEF_FANSPEED}" != "" ] && ESXI_DEF_FANSPEED=${PW_ESXI_DEF_FANSPEED} || ESXI_DEF_FANSPEED=30 SET_FanSpeed=${1} SET_HOST=${2} - if [ ${SET_FanSpeed} -ge ${DEFAULT_ESXI_FANSPEED} ] && [ ${SET_FanSpeed} -le 100 ]; then + if [ ${SET_FanSpeed} -ge ${ESXI_DEF_FANSPEED} ] && [ ${SET_FanSpeed} -le ${PW_ESXI_MAX_FANSPEED} ]; then ipmitool -I lanplus -H ${PW_HOST_IDRACS[${SET_HOST}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x01 0x00 >/dev/null 2>&1 ipmitool -I lanplus -H ${PW_HOST_IDRACS[${SET_HOST}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x02 0xff 0x$(printf "%X" "${SET_FanSpeed}") >/dev/null 2>&1 - if [ "${SET_FanSpeed}" == "${DEFAULT_ESXI_FANSPEED}" ]; then + if [ "${SET_FanSpeed}" == "${ESXI_DEF_FANSPEED}" ]; then MSG="Setting Fans back to defaults: ${SET_FanSpeed}%" elif (( $(bc <<< "${SET_FanSpeed} < $(cat ${PW_TMPFOLDER}/.lastfancheck/${SET_HOST}.set)") )); then MSG="Decreasing fans to ${SET_FanSpeed}%"