diff --git a/inc/power.inc.sh b/inc/power.inc.sh index f9e91409..83ea13f4 100644 --- a/inc/power.inc.sh +++ b/inc/power.inc.sh @@ -420,7 +420,7 @@ BATT VOLTAGE: ${BATTVOLT}'volts" 1 if (( $(bc <<<"${BATTVOLT} <= ${min_battvolt_sys}") )); then [ ! -f ${PW_TMPFOLDER}/power.dc.critlow ] && touch ${PW_TMPFOLDER}/power.dc.critlow - if [ ! -f ${PW_TMPFOLDER}/power.sys.off ] && (( $(bc <<<"${INPUTACV} < ${min_acvolt}") )); then + if [ ! -f ${PW_TMPFOLDER}/shutdown.SYS.started ] && [ ! -f ${PW_TMPFOLDER}/shutdown.MAINSITE.started ] && (( $(bc <<<"${INPUTACV} < ${min_acvolt}") )); then echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - Shutting down all remaining servers..." >> ${PW_LOGFILE} echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - Shutting down all remaining servers..." >> ${PW_LOGPOWER} SENDNOTICE "BATT-VOLT REALLY LOW: SHUTDOWN SYS SERVERS" "Battery Voltage REALLY LOW: ${BATTVOLT}'volts @@ -432,7 +432,7 @@ Shutting down all remaining servers" 1 elif (( $(bc <<<"${BATTVOLT} < ${min_battvolt}") )); then [ ! -f ${PW_TMPFOLDER}/power.dc.low ] && touch ${PW_TMPFOLDER}/power.dc.low - if [ ! -f ${PW_TMPFOLDER}/power.main.off ] && (( $(bc <<<"${INPUTACV} < ${min_acvolt}") )); then + if [ ! -f ${PW_TMPFOLDER}/shutdown.MAIN.started ] && (( $(bc <<<"${INPUTACV} < ${min_acvolt}") )); then echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - Shutting down main servers..." >> ${PW_LOGFILE} echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - Shutting down main servers..." >> ${PW_LOGPOWER} SENDNOTICE "BATT-VOLT LOW: SHUTDOWN MAIN SERVERS" "Battery Voltage LOW: ${BATTVOLT}'volts @@ -441,7 +441,7 @@ Shutting down main servers" 1 fi - elif [ ! -f ${PW_TMPFOLDER}/power.main.off ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.dc.low)) -ge $(echo "scale=0; ${PW_SHUTDOWN_MAINSERVERS_AFTER}*60" | bc) ]; then + elif [ ! -f ${PW_TMPFOLDER}/shutdown.MAIN.started ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.dc.low)) -ge $(echo "scale=0; ${PW_SHUTDOWN_MAINSERVERS_AFTER}*60" | bc) ]; then echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - Shutting down main servers..." >> ${PW_LOGFILE} echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - Shutting down main servers..." >> ${PW_LOGPOWER} SENDNOTICE "BATT-VOLT LOW: SHUTDOWN MAIN SERVERS" "Battery Voltage LOW: ${BATTVOLT}'volts diff --git a/powerwall.sh b/powerwall.sh index 20b35f60..b92bd41b 100755 --- a/powerwall.sh +++ b/powerwall.sh @@ -79,14 +79,10 @@ CHECK_SERVICES(){ } SHUTDOWN_MAIN(){ - if [ "${1}" == "ServerRoomTH" ] || [ "${1}" == "TEMP" ]; then + if [ "${1}" == "ServerRoomTH" ] || [ "${1}" == "TEMP" ] || [ "${1}" == "POWER" ]; then + touch ${PW_TMPFOLDER}/shutdown.MAIN.started SHUTDOWN_SERVER main -esxi off - reason='Server Room Overheated!' - sendnotice=true - - elif [ "${1}" == "POWER" ]; then - SHUTDOWN_SERVER main -esxi off - reason='Low Power!' + [ "${1}" == "POWER" ] && reason='Low Power!' || reason='Server Room Overheated!' sendnotice=true else @@ -102,14 +98,15 @@ ${reason}" 1 echo } SHUTDOWN_SYS(){ - if [ "${1}" == "ServerRoomTH" ] || [ "${1}" == "TEMP" ]; then - [ ! -f ${PW_TMPFOLDER}/shutdown.MAIN ] && SHUTDOWN_SERVER mainsite -esxi off || SHUTDOWN_SERVER sys -esxi off - reason='Server Room Overheated!' - sendnotice=true - - elif [ "${1}" == "POWER" ]; then - [ ! -f ${PW_TMPFOLDER}/shutdown.MAIN ] && SHUTDOWN_SERVER mainsite -esxi off || SHUTDOWN_SERVER sys -esxi off - reason='Low Power!' + if [ "${1}" == "ServerRoomTH" ] || [ "${1}" == "TEMP" ] || [ "${1}" == "POWER" ]; then + if [ ! -f ${PW_TMPFOLDER}/shutdown.MAIN ]; then + touch ${PW_TMPFOLDER}/shutdown.MAINSITE.started + SHUTDOWN_SERVER mainsite -esxi off + else + touch ${PW_TMPFOLDER}/shutdown.SYS.started + SHUTDOWN_SERVER sys -esxi off + fi + [ "${1}" == "POWER" ] && reason='Low Power!' || reason='Server Room Overheated!' sendnotice=true else @@ -117,7 +114,7 @@ SHUTDOWN_SYS(){ fi if [ "${sendnotice}" == "true" ]; then - SENDNOTICE "SYS SERVERS SHUTDOWN" "SYS servers have been shutdown + SENDNOTICE "SYS/MAINSITE SERVERS SHUTDOWN" "SYS servers have been shutdown ${reason}" 1 echo -e "($(date +'%Y-%m-%d %H:%M:%S')) - SYS servers have been shutdown, ${reason}" >> ${PW_LOGFILE} echo -e "($(date +'%Y-%m-%d %H:%M:%S')) - ${temp_f}'F - Shutting down SYS servers" >> ${logtemp} @@ -901,7 +898,7 @@ fi iscsi-vm-shutdown) [ "${2^^}" == "SYS" ] && ISCSISYSVMSHUTDOWN || ISCSIVMSHUTDOWN ;; - shutdownhost) SHUTDOWN_SERVER ${2} ${3} ${4} ${5};; + shutdown_server) SHUTDOWN_SERVER ${2} ${3} ${4} ${5};; hostpower) HOSTPOWER ${2} ${3};; host) HOSTMGMT ${2} ${3} ${4} ${5} ${6} ${7};; @@ -1000,19 +997,10 @@ fi echo -e " ${idsCL[Yellow]} -p|-power { on / off } ${idsCL[Default]}--> Controls Host Power" echo -e " ${idsCL[Yellow]} -e|-esxi { off / mm } ${idsCL[Default]}--> Shuts down ESXi or puts into maintenance mode" echo - # echo -e " ${idsCL[Yellow]}shutdownhost {host} ${idsCL[Default]}--> Shutdown ESXI host and its VMs" - # echo -e " ${idsCL[LightYellow]} host = {esxi-ip}, {idrac-ip}, {hostname} or {host-number;0-9}" - # echo - # echo -e " ${idsCL[LightCyan]}shutdown_servers${idsCL[Yellow]} {type} ${idsCL[Default]}--> Shutdown selection of servers" - # echo -e " ${idsCL[Yellow]} type = { main / sys / all }" - # echo echo -e " ${idsCL[LightCyan]}iscsi-vm-shutdown${idsCL[Yellow]} {type} ${idsCL[Default]}--> Shutdown VM's running on iSCSI-(PRI or SYS) Datastore(s)" echo -e " ${idsCL[Yellow]} type = { sys / main }" echo -e " ${idsCL[Yellow]} sys='iSCSI-SYS' / main='iSCSI-PRI' ${idsCL[Default]}--> Defaults to main (iSCSI-PRI)" echo - # echo -e " ${idsCL[Yellow]}hostpower {host} {on/off} ${idsCL[Default]}--> Control host chassis power" - # echo -e " ${idsCL[LightYellow]} host = {esxi-ip}, {idrac-ip}, {hostname} or {host-number;0-9}" - # echo echo -e " ${idsCL[LightCyan]}service${idsCL[Yellow]} {srvc} {cmd} ${idsCL[Default]}--> Manage an individual monitor service" echo -e " ${idsCL[Yellow]} srvc = { all / temp / power / powerlogger }" echo -e " ${idsCL[Yellow]} cmd = { start / stop / restart / status }"