update
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
VERS='2.5.1-12112023'
|
VERS='2.5.1-12112023'
|
||||||
|
|
||||||
noheader=' update service dailytemp '
|
noheader=' update service dailytemp confsync '
|
||||||
hc_cw=60
|
hc_cw=60
|
||||||
|
|
||||||
# mqtt_conn='/usr/bin/mosquitto_sub -h 127.0.0.1 -u emonpi -P emonpimqtt'
|
# 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_LOGFILE} ] && touch ${PW_LOGFILE}
|
||||||
[ ! -f ${PW_LOGPOWER} ] && touch ${PW_LOGPOWER}
|
[ ! -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(){
|
PWO_START(){
|
||||||
startup=true
|
startup=true
|
||||||
while true; do
|
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)
|
upsinfo=$(upsc CP1500PFCLCD)
|
||||||
if [ "$(echo "${upsinfo}" | grep 'input.voltage:' | sed 's/.*: //')" != "" ]; then
|
if [ "$(echo "${upsinfo}" | grep 'input.voltage:' | sed 's/.*: //')" != "" ]; then
|
||||||
OFFSITE_VOLTIN=$(echo "${upsinfo}" | grep 'input.voltage:' | sed 's/.*: //')
|
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.ac.low ]; then
|
||||||
if [ -f ${PW_TMPFOLDER}/power.offsite.off ]; 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}
|
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
|
fi
|
||||||
|
|
||||||
rm -f ${PW_TMPFOLDER}/power.offsite.ac.*
|
rm -f ${PW_TMPFOLDER}/power.offsite.ac.*
|
||||||
@@ -91,7 +78,7 @@ $(date)"
|
|||||||
if [ ! -f ${PW_TMPFOLDER}/power.offsite.restored ]; then
|
if [ ! -f ${PW_TMPFOLDER}/power.offsite.restored ]; then
|
||||||
touch ${PW_TMPFOLDER}/power.offsite.restored
|
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}
|
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"
|
SENDNOTICE "OFFSITE HOST POWER" "Powering offsite host(s) back ONLINE after power outage"
|
||||||
for host in ${PW_OFFSITEHOSTS_IDRAC}; do
|
for host in ${PW_OFFSITEHOSTS_IDRAC}; do
|
||||||
@@ -108,19 +95,19 @@ $(date)"
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
logtime=$(expr `date +%s` - $(stat -f %m ${PW_LOGPOWER}))
|
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}
|
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
|
fi
|
||||||
else
|
else
|
||||||
[ ! -f ${PW_TMPFOLDER}/power.offsite.ac.low ] && touch ${PW_TMPFOLDER}/power.offsite.ac.low
|
[ ! -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}
|
# 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
|
SENDNOTICE "OFFSITE POWER - POWER OFF/LOW!!" "Power off or low voltage detected" 1
|
||||||
touch ${PW_TMPFOLDER}/power.offsite.ac.low.notice
|
touch ${PW_TMPFOLDER}/power.offsite.ac.low.notice
|
||||||
fi
|
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}
|
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
|
SENDNOTICE "OFFSITE HOST POWER" "Powering DOWN offsite host(s) due to power outage" 1
|
||||||
touch ${PW_TMPFOLDER}/power.offsite.off
|
touch ${PW_TMPFOLDER}/power.offsite.off
|
||||||
@@ -133,7 +120,7 @@ $(date)"
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
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}
|
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
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -2236,6 +2236,10 @@ GET_SNAPSHOTS(){
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CONFSYNC(){
|
||||||
|
rsync -az --timeout=3 ${PW_FOLDER}/settings.conf root@10.2.1.1:${PW_FOLDER}/ & >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
TEST(){
|
TEST(){
|
||||||
start=`date +%s`
|
start=`date +%s`
|
||||||
temptotal=0
|
temptotal=0
|
||||||
@@ -2370,6 +2374,7 @@ fi
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
logrotate) LOGROTATE;;
|
logrotate) LOGROTATE;;
|
||||||
|
confsync) CONFSYNC;;
|
||||||
status)
|
status)
|
||||||
CHECKPOWER
|
CHECKPOWER
|
||||||
CHECKTEMP
|
CHECKTEMP
|
||||||
|
|||||||
Reference in New Issue
Block a user