update
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
|
||||
VERS='2.5.4-12112023'
|
||||
VERS='2.5.5-12112023'
|
||||
|
||||
noheader=' update service dailytemp confsync '
|
||||
hc_cw=60
|
||||
@@ -18,6 +18,7 @@ PW_TMPFOLDER=${PW_FOLDER}/.tmp
|
||||
[ ! -d ${PW_LOGARCHIVE} ] && mkdir ${PW_LOGARCHIVE}
|
||||
[ ! -d ${PW_TMPFOLDER} ] && mkdir ${PW_TMPFOLDER}
|
||||
|
||||
PW_SCRIPT=${PW_FOLDER}/powerwall.sh
|
||||
PW_LOGFILE=${PW_LOGFOLDER}/logfile
|
||||
PW_LOGPOWER=${PW_LOGFOLDER}/log-power
|
||||
[ ! -f ${PW_LOGFILE} ] && touch ${PW_LOGFILE}
|
||||
|
||||
@@ -95,7 +95,7 @@ $(date)"
|
||||
fi
|
||||
fi
|
||||
logtime=$(expr `date +%s` - $(stat -f %m ${PW_LOGPOWER}))
|
||||
if [ ${logtime} -ge $(echo "scale=2; ${PW_LOG_INTERVAL_NORMAL}*60" | bc) ] || ([ ${OFFSITE_BATT_CAP%.*} -lt 100 ] && [ ${logtime} -gt ${PW_LOG_INTERVAL_CHARGING} ]); then
|
||||
if [ ${logtime} -ge $(echo "scale=0; ${PW_LOG_INTERVAL_NORMAL}*60" | bc) ] || ([ ${OFFSITE_BATT_CAP%.*} -lt 100 ] && [ ${logtime} -gt ${PW_LOG_INTERVAL_CHARGING} ]); then
|
||||
echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_WATTS}'watts - ${OFFSITE_BATT_CAP}'% Battery - ${OFFSITE_BATT_RUNTIME}'mins - Normal" >> ${PW_LOGPOWER}
|
||||
fi
|
||||
else
|
||||
|
||||
39
powerwall.sh
39
powerwall.sh
@@ -226,7 +226,7 @@ CHECKTEMP_SERVICE(){
|
||||
for SENSORa in ${PW_SENSOR_ORD[@]}; do
|
||||
logtemp=${PW_LOGFOLDER}/log-temp-${SENSORa}
|
||||
[ ! -f ${logtemp} ] && touch ${logtemp}
|
||||
[ $(expr `date +%s` - $(stat -c %Y ${logtemp})) -ge 3600 ] && relog=1 || relog=0
|
||||
[ $(expr `date +%s` - $(stat -c %Y ${logtemp})) -ge $(echo "scale=0; ${PW_LOG_INTERVAL_NORMAL}*60" | bc) ] && relog=1 || relog=0
|
||||
|
||||
if ([ "${PW_REMOTE_SENSORS[${SENSORa}]}" != "" ] && [ "$(CHECK_HOST ${PW_REMOTE_SENSORS[${SENSORa}]})" != "false" ]) || ([ "${PW_HOST_ADDRESSES[${SENSORa}]}" != "" ] && [ "$(CHECK_HOST ${PW_HOST_ADDRESSES[${SENSORa}]})" != "false" ]); then
|
||||
# if ([ "${PW_REMOTE_SENSORS[${SENSORa}]}" != "" ] && [ "$(CHECK_HOST ${PW_REMOTE_SENSORS[${SENSORa}]})" != "false" ]); then
|
||||
@@ -413,9 +413,9 @@ Previous Temp: ${last_temp[${SENSOR//-/}]}${GAUGESH}"
|
||||
|
||||
[ -f ${PW_TMPFOLDER}/${SENSOR}.insert ] && lastinsert=$(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/${SENSOR}.insert)) || lastinsert=100000
|
||||
if [ "$(compgen -G "${PW_TMPFOLDER}/temp.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.ac.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.dc.*")" != "" ]; then
|
||||
wait=60
|
||||
wait=$(echo "scale=0; ${PW_MYSQL_LOG_INTERVAL_ABNORMAL}*60" | bc)
|
||||
else
|
||||
wait=300
|
||||
wait=$(echo "scale=0; ${PW_MYSQL_LOG_INTERVAL_NORMAL}*60" | bc)
|
||||
fi
|
||||
if [ "${PW_SENSOR_ID[${SENSORa}]}" != "" ] && [ ${lastinsert} -ge ${wait} ]; then
|
||||
if [ "${PW_SENSOR_TYPE[${SENSORa}]}" == "esxi" ]; then
|
||||
@@ -576,7 +576,7 @@ CHECKPOWER(){
|
||||
INV_ALARM=`echo ${INVSTATSINFO} | jq '.errors .Alms'`
|
||||
[ "${INV_ALARM}" == "0" ] && INV_ALARM_disp="${idsCL[Green]}No Alarms (${INV_ALARM})" || INV_ALARM_disp="${idsCL[LightRed]}${PW_INVERTER_ALARMS[${INV_ALARM}]}"
|
||||
INV_ERROR=`echo ${INVSTATSINFO} | jq '.errors .Err'`
|
||||
[ "${INV_ERROR}" == "0" ] && INV_ERROR_disp="${idsCL[Green]}No Errors" || INV_ERROR_disp="${idsCL[LightRed]}${PW_INVERTER_ERRORS[${INV_ERROR}]}"
|
||||
[ "${INV_ERROR}" == "0" ] && INV_ERROR_disp="${idsCL[Green]}No Errors (${INV_ERROR})" || INV_ERROR_disp="${idsCL[LightRed]}${PW_INVERTER_ERRORS[${INV_ERROR}]}"
|
||||
INV_STATE=`echo ${INVSTATSINFO} | jq '.stats .invSTATES'`
|
||||
[ "${INV_STATE}" != "0" ] && INV_STATE_disp="${idsCL[Green]}${PW_INVERTER_STATES[${INV_STATE}]}" || INV_STATE_disp="${idsCL[LightRed]}${PW_INVERTER_STATES[${INV_STATE}]}"
|
||||
INV_MODE=`echo ${INVSTATSINFO} | jq '.stats .power'`
|
||||
@@ -881,7 +881,7 @@ CHECKPOWER_SERVICE(){
|
||||
SENDNOTICE "POWER NOMINAL AGAIN" "Normal voltage detected
|
||||
VOLTAGE: ${INPUTACV}'volts"
|
||||
else
|
||||
[ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge 3600 ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'volts - 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}'volts - Normal Voltage" >> ${PW_LOGPOWER}
|
||||
if [ -f ${PW_TMPFOLDER}/power.ac.start ]; then
|
||||
SENDNOTICE "Power Nominal" "Service Startup
|
||||
Normal voltage detected
|
||||
@@ -895,14 +895,14 @@ BATT VOLTAGE: ${BATTVOLT}'volts"
|
||||
if [ ! -f ${PW_TMPFOLDER}/power.ac.good ]; then
|
||||
|
||||
if [ -f ${PW_TMPFOLDER}/power.sys.off ] || [ -f ${PW_TMPFOLDER}/power.main.off ] || [ -f ${PW_TMPFOLDER}/power.ac.conserve ]; then
|
||||
SENDNOTICE "HOSTS POWER" "Power restored! Will wait 3'mins before turning host(s) back on"
|
||||
SENDNOTICE "HOSTS POWER" "Power restored! Will wait ${PW_WAIT_TO_POWER_SERVERS}'mins before turning host(s) back on"
|
||||
touch ${PW_TMPFOLDER}/.power.restored
|
||||
fi
|
||||
|
||||
rm -f ${PW_TMPFOLDER}/power.ac.*
|
||||
touch ${PW_TMPFOLDER}/power.ac.good
|
||||
|
||||
elif [ -f ${PW_TMPFOLDER}/.power.restored ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/.power.restored)) -ge 300 ]; then
|
||||
elif [ -f ${PW_TMPFOLDER}/.power.restored ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/.power.restored)) -ge $(echo "scale=0; ${PW_WAIT_TO_POWER_SERVERS}*60" | bc) ]; then
|
||||
HOSTMGMT mainsite -p on >/dev/null 2>&1
|
||||
rm -f ${PW_TMPFOLDER}/.power.restored
|
||||
fi
|
||||
@@ -921,8 +921,13 @@ VOLTAGE: ${INPUTACV}'volts
|
||||
BATT VOLTAGE: ${BATTVOLT}'volts" 1
|
||||
rm -f ${PW_TMPFOLDER}/power.ac.good
|
||||
touch ${PW_TMPFOLDER}/power.ac.low
|
||||
|
||||
##### SHUTDOWN OFFSITE SERVER WHILE ITS AT MAINSITE
|
||||
${PW_SCRIPT} host 10.2.1.11 -e off 2>/dev/null &
|
||||
|
||||
|
||||
fi
|
||||
if [ ! -f ${PW_TMPFOLDER}/power.ac.conserve ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.ac.low)) -ge 120 ]; then
|
||||
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" | bc) ]; then
|
||||
echo -e "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'volts / ${BATTVOLT}'volts - 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
|
||||
SHUTDOWN_SERVER ${PW_HOST_IDRACS['iDS-vMS-Host0']} &
|
||||
@@ -931,7 +936,7 @@ BATT VOLTAGE: ${BATTVOLT}'volts" 1
|
||||
fi
|
||||
|
||||
if (( $(bc <<<"${BATTVOLT} >= ${min_battvolt}") )); then
|
||||
[ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge 3600 ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - Battery 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')) - ${BATTVOLT}'volts - Battery Voltage" >> ${PW_LOGPOWER}
|
||||
if [ -f ${PW_TMPFOLDER}/power.dc.start ]; then
|
||||
echo "($(date +'%Y-%m-%d %H:%M:%S')) - Battery: ${BATTVOLT}'volts - Service Startup - Normal voltage detected" >> ${PW_LOGPOWER}
|
||||
rm -f ${PW_TMPFOLDER}/power.dc.start
|
||||
@@ -943,7 +948,7 @@ BATT VOLTAGE: ${BATTVOLT}'volts" 1
|
||||
|
||||
else
|
||||
[ -f ${PW_TMPFOLDER}/power.dc.good ] && rm -f ${PW_TMPFOLDER}/power.dc.good
|
||||
[ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge 300 ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - LOW BATTERY Voltage" >> ${PW_LOGPOWER}
|
||||
[ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge $(echo "scale=0; ${PW_LOG_INTERVAL_ABNORMAL}*60" | bc) ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - LOW BATTERY Voltage" >> ${PW_LOGPOWER}
|
||||
|
||||
if (( $(bc <<<"${BATTVOLT} <= ${min_battvolt_sys}") )); then
|
||||
[ ! -f ${PW_TMPFOLDER}/power.dc.critlow ] && touch ${PW_TMPFOLDER}/power.dc.critlow
|
||||
@@ -967,7 +972,14 @@ Shutting down all remaining servers" 1
|
||||
Shutting down main servers" 1
|
||||
SHUTDOWN_MAIN POWER &
|
||||
|
||||
fi
|
||||
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
|
||||
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
|
||||
Shutting down main servers" 1
|
||||
SHUTDOWN_MAIN POWER &
|
||||
fi
|
||||
|
||||
volt_diff=`echo "scale=1; ${last_battvolt}-${BATTVOLT}" | bc`
|
||||
@@ -1132,9 +1144,10 @@ POWERLOGGER_SERVICE(){
|
||||
done
|
||||
|
||||
if [ "$(compgen -G "${PW_TMPFOLDER}/temp.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.*")" != "" ]; then
|
||||
sleep 1m
|
||||
sleep ${PW_MYSQL_LOG_INTERVAL_ABNORMAL}m
|
||||
|
||||
else
|
||||
sleep 5m
|
||||
sleep ${PW_MYSQL_LOG_INTERVAL_NORMAL}m
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user