Update power.inc.sh
This commit is contained in:
@@ -763,44 +763,45 @@ CHECKPOWER_SERVICE(){
|
|||||||
|
|
||||||
[ "${TEST_INPUTACV}" != "" ] || [ "${TEST_BATTVOLT}" != "" ] && TESTMODE=1 || TESTMODE=0
|
[ "${TEST_INPUTACV}" != "" ] || [ "${TEST_BATTVOLT}" != "" ] && TESTMODE=1 || TESTMODE=0
|
||||||
|
|
||||||
INVSTATSINFO=$(curl -m 3 -s "http://${PW_INVERTER_IP}/stats.json")
|
if [[ "${IP}" != "10.6.1"* ]]; then
|
||||||
SVRRM_UPS_INPUTACV=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.2.2.1.3.1.1 | sed 's/.*: //')
|
|
||||||
|
|
||||||
if (( $(bc <<<"${SVRRM_UPS_INPUTACV} < ${min_acvolt}") )); then
|
INVSTATSINFO=$(curl -m 3 -s "http://${PW_INVERTER_IP}/stats.json")
|
||||||
if [ ! -f ${PW_TMPFOLDER}/power.ups.low ]; then
|
SVRRM_UPS_INPUTACV=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.2.2.1.3.1.1 | sed 's/.*: //')
|
||||||
touch ${PW_TMPFOLDER}/power.ups.low
|
|
||||||
|
if (( $(bc <<<"${SVRRM_UPS_INPUTACV} < ${min_acvolt}") )); then
|
||||||
|
if [ ! -f ${PW_TMPFOLDER}/power.ups.low ]; then
|
||||||
|
touch ${PW_TMPFOLDER}/power.ups.low
|
||||||
|
|
||||||
elif [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.ups.low)) -ge 60 ]; then
|
elif [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.ups.low)) -ge 60 ]; then
|
||||||
SENDNOTICE "POWER ALERT - UPS POWER OFF/LOW POWER!!" "UPS has no power for 1min, shutting all servers down!" 1
|
SENDNOTICE "POWER ALERT - UPS POWER OFF/LOW POWER!!" "UPS has no power for 1min, shutting all servers down!" 1
|
||||||
|
|
||||||
|
|
||||||
######################### FINISH
|
######################### FINISH
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ -f ${PW_TMPFOLDER}/power.ups.low ]; then
|
||||||
|
rm -f ${PW_TMPFOLDER}/power.ups.low
|
||||||
fi
|
fi
|
||||||
|
|
||||||
elif [ -f ${PW_TMPFOLDER}/power.ups.low ]; then
|
else
|
||||||
rm -f ${PW_TMPFOLDER}/power.ups.low
|
[ "$(CHECK_HOST ${PW_UPS_IP})" != "false" ] && INVSTATSINFO=1
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${INVSTATSINFO}" != "" ] || [ ${TESTMODE} -eq 1 ]; then
|
if [ "${INVSTATSINFO}" != "" ] || [ ${TESTMODE} -eq 1 ]; then
|
||||||
[ "${TEST_INPUTACV}" != "" ] && INPUTACV=${TEST_INPUTACV} || INPUTACV=$(echo ${INVSTATSINFO} | jq '.inputs .inV')
|
if [[ "${IP}" != "10.6.1"* ]]; then
|
||||||
[ "${TEST_BATTVOLT}" != "" ] && BATTVOLT=${TEST_BATTVOLT} || BATTVOLT=$(echo ${INVSTATSINFO} | jq '.inputs .battV')
|
[ "${TEST_INPUTACV}" != "" ] && INPUTACV=${TEST_INPUTACV} || INPUTACV=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.3.3.1.3.1 | sed 's/.*: //')
|
||||||
BATTA=`echo ${INVSTATSINFO} | jq '.inputs .xfA'`
|
[ "${TEST_BATTVOLT}" != "" ] && BATTVOLT=${TEST_BATTVOLT} || BATTVOLT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.1.10.0 | sed 's/.*: //')
|
||||||
BATTLIFE=`echo "scale=2; (${BATTVOLT}*100)/${BATT_FULL}" | bc`
|
BATTLIFE=`echo "scale=2; (${BATTVOLT}*100)/${BATT_FULL}" | bc`
|
||||||
PW_DISCHARGE=0
|
|
||||||
if (( $(bc <<<"${BATTVOLT} >= ${FLOAT_CHARGE}") )); then
|
|
||||||
if (( $(bc <<<"${BATTVOLT} >= ${BULK_CHARGE}") )); then
|
|
||||||
BATTA_disp="`IDS_NUMBER_FORMAT ${BATTA}`'A - Bulk Charging"
|
|
||||||
else
|
|
||||||
BATTA_disp="`IDS_NUMBER_FORMAT ${BATTA}`'A - Float Charging"
|
|
||||||
fi
|
|
||||||
elif [ "${BATTA}" = "-0.1" ] || [ "${BATTA}" = "-0.2" ] || [ "${BATTA}" = "-0.3" ]; then
|
|
||||||
BATTA_disp="`IDS_NUMBER_FORMAT ${BATTA}`'A - Standby"
|
|
||||||
else
|
else
|
||||||
BATTA_disp="`IDS_NUMBER_FORMAT ${BATTA}`'A - Discharging"
|
[ "${TEST_INPUTACV}" != "" ] && INPUTACV=${TEST_INPUTACV} || INPUTACV=$(echo ${INVSTATSINFO} | jq '.inputs .inV')
|
||||||
# PW_DISCHARGE=1
|
[ "${TEST_BATTVOLT}" != "" ] && BATTVOLT=${TEST_BATTVOLT} || BATTVOLT=$(echo ${INVSTATSINFO} | jq '.inputs .battV')
|
||||||
|
BATTA=`echo ${INVSTATSINFO} | jq '.inputs .xfA'`
|
||||||
|
BATTLIFE=`echo "scale=2; (${BATTVOLT}*100)/${BATT_FULL}" | bc`
|
||||||
fi
|
fi
|
||||||
|
PW_DISCHARGE=0
|
||||||
|
|
||||||
if [ ${TESTMODE} -eq 1 ] && [ ! -f ${PW_TMPFOLDER}/power.testmode.enabled ]; then
|
if [ ${TESTMODE} -eq 1 ] && [ ! -f ${PW_TMPFOLDER}/power.testmode.enabled ]; then
|
||||||
touch ${PW_TMPFOLDER}/power.testmode.enabled
|
touch ${PW_TMPFOLDER}/power.testmode.enabled
|
||||||
@@ -822,16 +823,14 @@ CHECKPOWER_SERVICE(){
|
|||||||
echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V / ${BATTVOLT}'V - Back to Normal Voltage" >> ${PW_LOGPOWER}
|
echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V / ${BATTVOLT}'V - Back to Normal Voltage" >> ${PW_LOGPOWER}
|
||||||
SENDNOTICE "POWER NOMINAL AGAIN" "Normal voltage detected
|
SENDNOTICE "POWER NOMINAL AGAIN" "Normal voltage detected
|
||||||
GRID VOLTAGE: ${INPUTACV}'V
|
GRID VOLTAGE: ${INPUTACV}'V
|
||||||
BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE}`'% @ ${BATT_FULL}'V)
|
BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE}`'% @ ${BATT_FULL}'V)"
|
||||||
BATT AMPS: ${BATTA_disp}"
|
|
||||||
else
|
else
|
||||||
[ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge $(echo "scale=0; ${PW_LOG_INTERVAL_NORMAL}*60" | bc) ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V - Normal Voltage" >> ${PW_LOGPOWER}
|
[ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge $(echo "scale=0; ${PW_LOG_INTERVAL_NORMAL}*60" | bc) ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V - Normal Voltage" >> ${PW_LOGPOWER}
|
||||||
if [ -f ${PW_TMPFOLDER}/power.ac.start ]; then
|
if [ -f ${PW_TMPFOLDER}/power.ac.start ]; then
|
||||||
SENDNOTICE "POWER Startup - Nominal" "Service Startup
|
SENDNOTICE "POWER Startup - Nominal" "Service Startup
|
||||||
Normal voltage detected
|
Normal voltage detected
|
||||||
GRID VOLTAGE: ${INPUTACV}'V
|
GRID VOLTAGE: ${INPUTACV}'V
|
||||||
BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE}`'% @ ${BATT_FULL}'V)
|
BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE}`'% @ ${BATT_FULL}'V)"
|
||||||
BATT AMPS: ${BATTA_disp}"
|
|
||||||
|
|
||||||
echo "($(date +'%Y-%m-%d %H:%M:%S')) - 'Check Power' Service Startup - Normal voltage detected - Input: ${INPUTACV}'V" >> ${PW_LOGPOWER}
|
echo "($(date +'%Y-%m-%d %H:%M:%S')) - 'Check Power' Service Startup - Normal voltage detected - Input: ${INPUTACV}'V" >> ${PW_LOGPOWER}
|
||||||
rm -f ${PW_TMPFOLDER}/power.ac.start
|
rm -f ${PW_TMPFOLDER}/power.ac.start
|
||||||
@@ -851,11 +850,6 @@ BATT AMPS: ${BATTA_disp}"
|
|||||||
HOSTMGMT mainsite -p on >/dev/null 2>&1 &
|
HOSTMGMT mainsite -p on >/dev/null 2>&1 &
|
||||||
rm -f ${PW_TMPFOLDER}/.power.restored
|
rm -f ${PW_TMPFOLDER}/.power.restored
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# UPDATE APC-PDU LINE TO LINE VOLTAGE
|
|
||||||
CURRENT_VOLTAGE=$(snmpwalk -t 3 -r 0 -v 1 -c public ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.1.15.0 | sed 's/.*: //')
|
|
||||||
SET_VOLTAGE=`echo "scale=2; $(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.3.2.1.2.1.1 | sed 's/.*: //')/10" | bc | awk '{print int($1+0.5)}'`
|
|
||||||
[ "${SET_VOLTAGE}" != "" ] && [ "${CURRENT_VOLTAGE}" != "" ] && [ ${CURRENT_VOLTAGE} -ne ${SET_VOLTAGE} ] && run=$(snmpset -v 1 -c private ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.1.15.0 i ${SET_VOLTAGE} >/dev/null 2>&1) && echo -e "($(date +'%Y-%m-%d %H:%M:%S')) - ${CURRENT_VOLTAGE}'V --> ${SET_VOLTAGE}'V - LINE-TO-LINE VOLTAGE UPDATED ON APC-PDU" >> ${PW_LOGPOWER}
|
|
||||||
|
|
||||||
else
|
else
|
||||||
[ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge 300 ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V / ${BATTVOLT}'V - Power OFF or LOW" >> ${PW_LOGPOWER}
|
[ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge 300 ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V / ${BATTVOLT}'V - Power OFF or LOW" >> ${PW_LOGPOWER}
|
||||||
@@ -863,8 +857,7 @@ BATT AMPS: ${BATTA_disp}"
|
|||||||
SENDNOTICE "POWER Startup - POWER OFF/LOW -${PW_DISCHARGE}- !!" "Service Startup
|
SENDNOTICE "POWER Startup - POWER OFF/LOW -${PW_DISCHARGE}- !!" "Service Startup
|
||||||
Power off or low voltage detected
|
Power off or low voltage detected
|
||||||
GRID VOLTAGE: ${INPUTACV}'V
|
GRID VOLTAGE: ${INPUTACV}'V
|
||||||
BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE}`'% @ ${BATT_FULL}'V)
|
BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE}`'% @ ${BATT_FULL}'V)" 1
|
||||||
BATT AMPS: ${BATTA_disp}" 1
|
|
||||||
echo "($(date +'%Y-%m-%d %H:%M:%S')) - 'Check Power' Service Startup - Normal voltage detected - Input: ${INPUTACV}'V" >> ${PW_LOGPOWER}
|
echo "($(date +'%Y-%m-%d %H:%M:%S')) - 'Check Power' Service Startup - Normal voltage detected - Input: ${INPUTACV}'V" >> ${PW_LOGPOWER}
|
||||||
rm -f ${PW_TMPFOLDER}/power.ac.start
|
rm -f ${PW_TMPFOLDER}/power.ac.start
|
||||||
rm -f ${PW_TMPFOLDER}/power.ac.good
|
rm -f ${PW_TMPFOLDER}/power.ac.good
|
||||||
@@ -875,20 +868,18 @@ BATT AMPS: ${BATTA_disp}" 1
|
|||||||
echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V / ${BATTVOLT}'V - Power OFF or LOW voltage detected" >> ${PW_LOGPOWER}
|
echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V / ${BATTVOLT}'V - Power OFF or LOW voltage detected" >> ${PW_LOGPOWER}
|
||||||
SENDNOTICE "POWER ALERT - POWER OFF/LOW" "Power off or low voltage detected
|
SENDNOTICE "POWER ALERT - POWER OFF/LOW" "Power off or low voltage detected
|
||||||
GRID VOLTAGE: ${INPUTACV}'V
|
GRID VOLTAGE: ${INPUTACV}'V
|
||||||
BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE}`'% @ ${BATT_FULL}'V)
|
BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE}`'% @ ${BATT_FULL}'V)" 1
|
||||||
BATT AMPS: ${BATTA_disp}" 1
|
|
||||||
else
|
else
|
||||||
echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V / ${BATTVOLT}'V - Running on Batteries" >> ${PW_LOGPOWER}
|
echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V / ${BATTVOLT}'V - Running on Batteries" >> ${PW_LOGPOWER}
|
||||||
SENDNOTICE "POWER ALERT - RUNNING ON BATTERIES!!" "Running on Batteries
|
SENDNOTICE "POWER ALERT - RUNNING ON BATTERIES!!" "Running on Batteries
|
||||||
GRID VOLTAGE: ${INPUTACV}'V
|
GRID VOLTAGE: ${INPUTACV}'V
|
||||||
BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE}`'% @ ${BATT_FULL}'V)
|
BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE}`'% @ ${BATT_FULL}'V)" 1
|
||||||
BATT AMPS: ${BATTA_disp}" 1
|
|
||||||
fi
|
fi
|
||||||
rm -f ${PW_TMPFOLDER}/power.ac.good
|
rm -f ${PW_TMPFOLDER}/power.ac.good
|
||||||
touch ${PW_TMPFOLDER}/power.ac.low
|
touch ${PW_TMPFOLDER}/power.ac.low
|
||||||
|
|
||||||
fi
|
fi
|
||||||
if [ ! -f ${PW_TMPFOLDER}/power.ac.conserve ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.ac.low)) -ge $(echo "scale=0; ${PW_CONSERVE_AFTER}*60/1" | bc) ]; then
|
if [ "${PW_CONSERVE_HOSTS}" != "" ] && [ ! -f ${PW_TMPFOLDER}/power.ac.conserve ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.ac.low)) -ge $(echo "scale=0; ${PW_CONSERVE_AFTER}*60/1" | bc) ]; then
|
||||||
echo -e "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V / ${BATTVOLT}'V - Shutting down iSCSI VM's and Host to conserve power" >> ${PW_LOGPOWER}
|
echo -e "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V / ${BATTVOLT}'V - Shutting down iSCSI VM's and Host to conserve power" >> ${PW_LOGPOWER}
|
||||||
SENDNOTICE "POWER ALERT - Conserving Power" "Shutting down iSCSI VM's and Host to conserve power" 1
|
SENDNOTICE "POWER ALERT - Conserving Power" "Shutting down iSCSI VM's and Host to conserve power" 1
|
||||||
# SHUTDOWN_SERVER ${PW_MAIN_ISCSI} -esxi off &
|
# SHUTDOWN_SERVER ${PW_MAIN_ISCSI} -esxi off &
|
||||||
|
|||||||
Reference in New Issue
Block a user