update
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
|
||||
VERS='2.5.1-12112023'
|
||||
|
||||
noheader=' update service dailytemp '
|
||||
noheader=' update service dailytemp confsync '
|
||||
hc_cw=60
|
||||
|
||||
# mqtt_conn='/usr/bin/mosquitto_sub -h 127.0.0.1 -u emonpi -P emonpimqtt'
|
||||
|
||||
@@ -12,38 +12,25 @@ PW_LOGPOWER=${PW_LOGFOLDER}/log-power
|
||||
[ ! -f ${PW_LOGFILE} ] && touch ${PW_LOGFILE}
|
||||
[ ! -f ${PW_LOGPOWER} ] && touch ${PW_LOGPOWER}
|
||||
|
||||
. /opt/idssys/powerwall/settings.conf
|
||||
|
||||
SHUTDOWNSERVERS_AT_LOAD=80 #percent
|
||||
SHUTDOWNSERVERS_AFTER=5 #minutes
|
||||
WAIT_TO_POWER_SERVERS=5 #minutes
|
||||
LOG_INTERVAL_NORMAL=15 #minutes
|
||||
LOG_INTERVAL_ABNORMAL=30 #seconds
|
||||
LOG_INTERVAL_CHARGING=300 #seconds
|
||||
RENOTIFY_LOWPOWER=10 #minutes
|
||||
|
||||
PW_OFFSITEHOSTS="10.2.1.11"
|
||||
# PW_OFFSITEHOSTS="10.2.1.11 10.2.1.12"
|
||||
PW_OFFSITEHOSTS_IDRAC="10.2.1.21"
|
||||
# PW_OFFSITEHOSTS_IDRAC="10.2.1.21 10.2.1.22"
|
||||
PW_VCENTERHOST="10.10.1.30"
|
||||
|
||||
# TEST=true
|
||||
# TEST=full
|
||||
if [ "${TEST}" != "" ]; then
|
||||
SHUTDOWNSERVERS_AT_LOAD=95 #percent
|
||||
SHUTDOWNSERVERS_AFTER=1 #minutes
|
||||
WAIT_TO_POWER_SERVERS=1 #minutes
|
||||
TESTMODE="### TEST MODE ACTIVE ###
|
||||
|
||||
"
|
||||
else
|
||||
TESTMODE=""
|
||||
fi
|
||||
|
||||
PWO_START(){
|
||||
startup=true
|
||||
while true; do
|
||||
|
||||
. /opt/idssys/powerwall/settings.conf
|
||||
PW_OFFSITEHOSTS=${PW_OFFSITE_HOSTS//,/ }
|
||||
# TEST=true
|
||||
# TEST=full
|
||||
if [ "${TEST}" != "" ]; then
|
||||
PW_OFFSITE_SHUTDOWNSERVERS_AT_LOAD=95 #percent
|
||||
PW_OFFSITE_SHUTDOWNSERVERS_AFTER=1 #minutes
|
||||
PW_OFFSITE_WAIT_TO_POWER_SERVERS=1 #minutes
|
||||
TESTMODE="### TEST MODE ACTIVE ###
|
||||
|
||||
"
|
||||
else
|
||||
TESTMODE=""
|
||||
fi
|
||||
|
||||
upsinfo=$(upsc CP1500PFCLCD)
|
||||
if [ "$(echo "${upsinfo}" | grep 'input.voltage:' | sed 's/.*: //')" != "" ]; then
|
||||
OFFSITE_VOLTIN=$(echo "${upsinfo}" | grep 'input.voltage:' | sed 's/.*: //')
|
||||
@@ -82,7 +69,7 @@ $(date)"
|
||||
if [ -f ${PW_TMPFOLDER}/power.offsite.ac.low ]; then
|
||||
if [ -f ${PW_TMPFOLDER}/power.offsite.off ]; then
|
||||
echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}'% Battery - Offsite Power Restored" >> ${PW_LOGFILE}
|
||||
SENDNOTICE "OFFSITE POWER" "Power restored! Will wait ${WAIT_TO_POWER_SERVERS}'mins before turning host(s) back on"
|
||||
SENDNOTICE "OFFSITE POWER" "Power restored! Will wait ${PW_OFFSITE_WAIT_TO_POWER_SERVERS}'mins before turning host(s) back on"
|
||||
fi
|
||||
|
||||
rm -f ${PW_TMPFOLDER}/power.offsite.ac.*
|
||||
@@ -91,7 +78,7 @@ $(date)"
|
||||
if [ ! -f ${PW_TMPFOLDER}/power.offsite.restored ]; then
|
||||
touch ${PW_TMPFOLDER}/power.offsite.restored
|
||||
|
||||
elif [ $(expr `date +%s` - $(stat -f %m ${PW_TMPFOLDER}/power.offsite.restored)) -gt $(echo "scale=2; ${WAIT_TO_POWER_SERVERS}*60" | bc) ]; then
|
||||
elif [ $(expr `date +%s` - $(stat -f %m ${PW_TMPFOLDER}/power.offsite.restored)) -gt $(echo "scale=2; ${PW_OFFSITE_WAIT_TO_POWER_SERVERS}*60" | bc) ]; then
|
||||
echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}'% Battery - Powering Hosts ON After Power Outage" >> ${PW_LOGFILE}
|
||||
SENDNOTICE "OFFSITE HOST POWER" "Powering offsite host(s) back ONLINE after power outage"
|
||||
for host in ${PW_OFFSITEHOSTS_IDRAC}; do
|
||||
@@ -108,19 +95,19 @@ $(date)"
|
||||
fi
|
||||
fi
|
||||
logtime=$(expr `date +%s` - $(stat -f %m ${PW_LOGPOWER}))
|
||||
if [ ${logtime} -ge $(echo "scale=2; ${LOG_INTERVAL_NORMAL}*60" | bc) ] || ([ ${OFFSITE_BATT_CAP%.*} -lt 100 ] && [ ${logtime} -gt ${LOG_INTERVAL_CHARGING} ]); then
|
||||
if [ ${logtime} -ge $(echo "scale=2; ${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
|
||||
[ ! -f ${PW_TMPFOLDER}/power.offsite.ac.low ] && touch ${PW_TMPFOLDER}/power.offsite.ac.low
|
||||
|
||||
if [ ! -f ${PW_TMPFOLDER}/power.offsite.ac.low.notice ] || [ $(expr `date +%s` - $(stat -f %m ${PW_TMPFOLDER}/power.offsite.ac.low.notice)) -gt $(echo "scale=2; ${RENOTIFY_LOWPOWER}*60" | bc) ]; then
|
||||
if [ ! -f ${PW_TMPFOLDER}/power.offsite.ac.low.notice ] || [ $(expr `date +%s` - $(stat -f %m ${PW_TMPFOLDER}/power.offsite.ac.low.notice)) -gt $(echo "scale=2; ${PW_RENOTIFY_LOWPOWER}*60" | bc) ]; then
|
||||
# echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}'% Battery - Powering LOW/OFF!" >> ${PW_LOGFILE}
|
||||
SENDNOTICE "OFFSITE POWER - POWER OFF/LOW!!" "Power off or low voltage detected" 1
|
||||
touch ${PW_TMPFOLDER}/power.offsite.ac.low.notice
|
||||
fi
|
||||
|
||||
if ([ ${OFFSITE_BATT_CAP%.*} -le ${SHUTDOWNSERVERS_AT_LOAD} ] || [ $(expr `date +%s` - $(stat -f %m ${PW_TMPFOLDER}/power.offsite.ac.low)) -ge $(echo "scale=2; ${SHUTDOWNSERVERS_AFTER}*60" | bc) ]) && [ ! -f ${PW_TMPFOLDER}/power.offsite.off ]; then
|
||||
if ([ ${OFFSITE_BATT_CAP%.*} -le ${PW_OFFSITE_SHUTDOWNSERVERS_AT_LOAD} ] || [ $(expr `date +%s` - $(stat -f %m ${PW_TMPFOLDER}/power.offsite.ac.low)) -ge $(echo "scale=2; ${PW_OFFSITE_SHUTDOWNSERVERS_AFTER}*60" | bc) ]) && [ ! -f ${PW_TMPFOLDER}/power.offsite.off ]; then
|
||||
echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}'% Battery - Powering Down Hosts!" >> ${PW_LOGFILE}
|
||||
SENDNOTICE "OFFSITE HOST POWER" "Powering DOWN offsite host(s) due to power outage" 1
|
||||
touch ${PW_TMPFOLDER}/power.offsite.off
|
||||
@@ -133,7 +120,7 @@ $(date)"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ $(expr `date +%s` - $(stat -f %m ${PW_LOGPOWER})) -gt ${LOG_INTERVAL_ABNORMAL} ]; then
|
||||
if [ $(expr `date +%s` - $(stat -f %m ${PW_LOGPOWER})) -gt ${PW_LOG_INTERVAL_ABNORMAL} ]; then
|
||||
echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_WATTS}'watts - ${OFFSITE_BATT_CAP}'% Battery - ${OFFSITE_BATT_RUNTIME}'mins - OFF/LOW POWER!!" >> ${PW_LOGPOWER}
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -2236,6 +2236,10 @@ GET_SNAPSHOTS(){
|
||||
done
|
||||
}
|
||||
|
||||
CONFSYNC(){
|
||||
rsync -az --timeout=3 ${PW_FOLDER}/settings.conf root@10.2.1.1:${PW_FOLDER}/ & >/dev/null 2>&1
|
||||
}
|
||||
|
||||
TEST(){
|
||||
start=`date +%s`
|
||||
temptotal=0
|
||||
@@ -2370,6 +2374,7 @@ fi
|
||||
;;
|
||||
|
||||
logrotate) LOGROTATE;;
|
||||
confsync) CONFSYNC;;
|
||||
status)
|
||||
CHECKPOWER
|
||||
CHECKTEMP
|
||||
|
||||
Reference in New Issue
Block a user