diff --git a/defaults.inc b/defaults.inc index 9e592d80..25c3bba8 100755 --- a/defaults.inc +++ b/defaults.inc @@ -1,6 +1,6 @@ #!/usr/bin/env bash -VERS='2.5.175-01282024' +VERS='2.5.176-01282024' noheader=' update service dailytemp confsync -r -report ' diff --git a/inc/temp.inc.sh b/inc/temp.inc.sh index 48a854c0..41d0917f 100644 --- a/inc/temp.inc.sh +++ b/inc/temp.inc.sh @@ -554,17 +554,8 @@ CHECKTEMP_SERVICE_RUNSENSOR(){ if [ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set ] && (( $(bc <<< "${temp_f} < $(echo "scale=2; ${DEFAULT_ESXI_EXHAUST_MIN}+${ESXI_FANSPEED_GL_ZONE}" | bc)") )); then if [ ${FanSpeed} -ne ${DEFAULT_ESXI_FANSPEED} ]; then if [[ "${PW_ESXI_FANSPEEDCONTROL_HOSTS}" = *"${PW_HOST_IDRACS[${SENSORa}]}"* ]]; then - SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} FanSpeed Control" "Setting fans back to normal ${DEFAULT_ESXI_FANSPEED}%" - ipmitool -I lanplus -H ${PW_HOST_IDRACS[${SENSORa}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x01 0x00 >/dev/null 2>&1 - ipmitool -I lanplus -H ${PW_HOST_IDRACS[${SENSORa}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x02 0xff 0x$(printf "%X" "${DEFAULT_ESXI_FANSPEED}") >/dev/null 2>&1 - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSOR} - Resetting FanSpeed back to ${DEFAULT_ESXI_FANSPEED}%" >> ${logtemp} - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSOR} - Resetting FanSpeed back to ${DEFAULT_ESXI_FANSPEED}%" >> ${PW_LOGFILE} - echo "${DEFAULT_ESXI_FANSPEED}" >| ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set - if [ "${PW_HOST_IDRACS[${SENSORa}]}" == "10.10.2.27" ]; then - ipmitool -I lanplus -H 10.10.2.26 -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x01 0x00 >/dev/null 2>&1 - ipmitool -I lanplus -H 10.10.2.26 -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x02 0xff 0x$(printf "%X" "${DEFAULT_ESXI_FANSPEED}") >/dev/null 2>&1 - echo "${DEFAULT_ESXI_FANSPEED}" >| ${PW_TMPFOLDER}/.lastfancheck/iDS-vMS-Host6.set - fi + [ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set ] && SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} FanSpeed Control" "Setting fans back to normal ${DEFAULT_ESXI_FANSPEED}%" + SET_ESXI_FANSPEED ${DEFAULT_ESXI_FANSPEED} ${SENSORa} >/dev/null 2>&1 & elif [ ${FanSpeed} -ge 90 ]; then SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} FAN ISSUE?!" "Possible fan issue, currently running at ${FanSpeed}%" 1 fi @@ -578,17 +569,8 @@ CHECKTEMP_SERVICE_RUNSENSOR(){ [ ! -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl ] && echo "${FanSpeed}" >| ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl if [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl)) -ge 3600 ] && (( $(bc <<< "$(expr ${DEFAULT_ESXI_FANSPEED} + 5) < ${FanSpeed}") )); then SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} FanSpeed Control" "GL Zone Alert: Resetting fans back to normal ${DEFAULT_ESXI_FANSPEED}%" - ipmitool -I lanplus -H ${PW_HOST_IDRACS[${SENSORa}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x01 0x00 >/dev/null 2>&1 - ipmitool -I lanplus -H ${PW_HOST_IDRACS[${SENSORa}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x02 0xff 0x$(printf "%X" "${DEFAULT_ESXI_FANSPEED}") >/dev/null 2>&1 - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSOR} - Resetting FanSpeed back to ${DEFAULT_ESXI_FANSPEED}%" >> ${logtemp} - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSOR} - Resetting FanSpeed back to ${DEFAULT_ESXI_FANSPEED}%" >> ${PW_LOGFILE} - echo "${DEFAULT_ESXI_FANSPEED}" >| ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set + SET_ESXI_FANSPEED ${DEFAULT_ESXI_FANSPEED} ${SENSORa} >/dev/null 2>&1 & rm -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl - if [ "${PW_HOST_IDRACS[${SENSORa}]}" == "10.10.2.27" ]; then - ipmitool -I lanplus -H 10.10.2.26 -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x01 0x00 >/dev/null 2>&1 - ipmitool -I lanplus -H 10.10.2.26 -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x02 0xff 0x$(printf "%X" "${DEFAULT_ESXI_FANSPEED}") >/dev/null 2>&1 - echo "${DEFAULT_ESXI_FANSPEED}" >| ${PW_TMPFOLDER}/.lastfancheck/iDS-vMS-Host6.set - fi fi elif (( $(bc <<< "${temp_f} >= ${DEFAULT_ESXI_EXHAUST_MIN}") )); then @@ -596,17 +578,8 @@ CHECKTEMP_SERVICE_RUNSENSOR(){ if [ ${NEW_FanSpeed} -le 104 ]; then [ ${NEW_FanSpeed} -gt 100 ] && NEW_FanSpeed=100 if [ ${NEW_FanSpeed} -ge ${DEFAULT_ESXI_FANSPEED} ] && [ ${NEW_FanSpeed} -le 100 ]; then - SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} Exhaust Warm" "Increasing fans to ${NEW_FanSpeed}%" - ipmitool -I lanplus -H ${PW_HOST_IDRACS[${SENSORa}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x01 0x00 >/dev/null 2>&1 - ipmitool -I lanplus -H ${PW_HOST_IDRACS[${SENSORa}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x02 0xff 0x$(printf "%X" "${NEW_FanSpeed}") >/dev/null 2>&1 - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSOR} - Increasing fans to ${NEW_FanSpeed}%" >> ${logtemp} - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSOR} - Increasing fans to ${NEW_FanSpeed}%" >> ${PW_LOGFILE} - echo "${NEW_FanSpeed}" >| ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set - if [ "${PW_HOST_IDRACS[${SENSORa}]}" == "10.10.2.27" ]; then - ipmitool -I lanplus -H 10.10.2.26 -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x01 0x00 >/dev/null 2>&1 - ipmitool -I lanplus -H 10.10.2.26 -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x02 0xff 0x$(printf "%X" "${NEW_FanSpeed}") >/dev/null 2>&1 - echo "${NEW_FanSpeed}" >| ${PW_TMPFOLDER}/.lastfancheck/iDS-vMS-Host6.set - fi + [ ${NEW_FanSpeed} -ge $(expr ${DEFAULT_ESXI_FANSPEED} + 10) ] && SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} Exhaust Warm" "Increasing fans to ${NEW_FanSpeed}%" + SET_ESXI_FANSPEED ${NEW_FanSpeed} ${SENSORa} >/dev/null 2>&1 & fi fi [ -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl ] && rm -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl @@ -616,23 +589,12 @@ CHECKTEMP_SERVICE_RUNSENSOR(){ 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} if [ ${NEW_FanSpeed} -ge ${DEFAULT_ESXI_FANSPEED} ] && [ ${NEW_FanSpeed} -le 100 ]; then - SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} Exhaust Cooling" "Decreasing fans to ${NEW_FanSpeed}%" - ipmitool -I lanplus -H ${PW_HOST_IDRACS[${SENSORa}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x01 0x00 >/dev/null 2>&1 - ipmitool -I lanplus -H ${PW_HOST_IDRACS[${SENSORa}]} -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x02 0xff 0x$(printf "%X" "${NEW_FanSpeed}") >/dev/null 2>&1 - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSOR} - Decreasing fans to ${NEW_FanSpeed}%" >> ${logtemp} - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSOR} - Decreasing fans to ${NEW_FanSpeed}%" >> ${PW_LOGFILE} - echo "${NEW_FanSpeed}" >| ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set - if [ "${PW_HOST_IDRACS[${SENSORa}]}" == "10.10.2.27" ]; then - ipmitool -I lanplus -H 10.10.2.26 -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x01 0x00 >/dev/null 2>&1 - ipmitool -I lanplus -H 10.10.2.26 -U ${PW_ESXI_USER} -P "${PW_ESXI_PASS}" raw 0x30 0x30 0x02 0xff 0x$(printf "%X" "${NEW_FanSpeed}") >/dev/null 2>&1 - echo "${NEW_FanSpeed}" >| ${PW_TMPFOLDER}/.lastfancheck/iDS-vMS-Host6.set - fi + [ ${NEW_FanSpeed} -ge $(expr ${DEFAULT_ESXI_FANSPEED} + 5) ] && SENDNOTICE "${PW_HOST_IDRACS[${SENSORa}]} Exhaust Cooling" "Decreasing fans to ${NEW_FanSpeed}%" + SET_ESXI_FANSPEED ${NEW_FanSpeed} ${SENSORa} >/dev/null 2>&1 & fi fi [ -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl ] && rm -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.gl - fi - fi elif [[ "${PW_ESXI_FANSPEEDCONTROL_HOSTS}" != *"${PW_HOST_IDRACS[${SENSORa}]}"* ]] && [ -f ${PW_TMPFOLDER}/.lastfancheck/${SENSORa}.set ]; then @@ -815,6 +777,25 @@ Previous Temp: ${last_temp}${GAUGESH}" touch ${PW_TMPFOLDER}/ztemprun.${SENSORa}.done } +SET_ESXI_FANSPEED(){ + SET_FanSpeed=${1} + SET_HOST=${2} + 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 + 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}%" + else + MSG="Increasing fans to ${SET_FanSpeed}%" + fi + echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSOR} - ${MSG}" >> ${logtemp} + echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${FanSpeed}% - ${SENSOR} - ${MSG}" >> ${PW_LOGFILE} + echo "${SET_FanSpeed}" >| ${PW_TMPFOLDER}/.lastfancheck/${SET_HOST}.set + [ "${SET_HOST}" == "iDS-vMS-Host7" ] && SET_ESXI_FANSPEED ${SET_FanSpeed} iDS-vMS-Host6 >/dev/null 2>&1 & +} + SENDTEMPS(){ st_temps=$(SENDTEMP ${2}) SENDNOTICE "${1}" "${st_temps}"