update
This commit is contained in:
90
defaults.inc
90
defaults.inc
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
VERS='2.168-08122023'
|
||||
VERS='2.2.1-08132023'
|
||||
|
||||
noheader=' update service dailytemp '
|
||||
|
||||
@@ -16,61 +16,63 @@ min_battvolt_sys=47
|
||||
#47
|
||||
|
||||
FOLDER='/opt/idssys/powerwall'
|
||||
LOGFOLDER=${FOLDER}/logs
|
||||
LOGARCHIVE=${FOLDER}/logs/archive
|
||||
TMPFOLDER=${FOLDER}/.tmp
|
||||
[ ! -d ${LOGFOLDER} ] && mkdir ${LOGFOLDER}
|
||||
[ ! -d ${LOGARCHIVE} ] && mkdir ${LOGARCHIVE}
|
||||
[ ! -d ${TMPFOLDER} ] && mkdir ${TMPFOLDER}
|
||||
PW_LOGFOLDER=${PW_FOLDER}/logs
|
||||
PW_LOGARCHIVE=${PW_FOLDER}/logs/archive
|
||||
PW_TMPFOLDER=${PW_FOLDER}/.tmp
|
||||
[ ! -d ${PW_LOGFOLDER} ] && mkdir ${PW_LOGFOLDER}
|
||||
[ ! -d ${PW_LOGARCHIVE} ] && mkdir ${PW_LOGARCHIVE}
|
||||
[ ! -d ${PW_TMPFOLDER} ] && mkdir ${PW_TMPFOLDER}
|
||||
|
||||
logfile=${LOGFOLDER}/logfile
|
||||
logpower=${LOGFOLDER}/log-power
|
||||
[ ! -f ${logfile} ] && touch ${logfile}
|
||||
[ ! -f ${logpower} ] && touch ${logpower}
|
||||
PW_LOGFILE=${PW_LOGFOLDER}/logfile
|
||||
PW_LOGPOWER=${PW_LOGFOLDER}/log-power
|
||||
[ ! -f ${PW_LOGFILE} ] && touch ${PW_LOGFILE}
|
||||
[ ! -f ${PW_LOGPOWER} ] && touch ${PW_LOGPOWER}
|
||||
|
||||
|
||||
declare -A TEMP_THRESHOLDS
|
||||
# TEMP_THRESHOLDS['ServerRoomTH']="72,74,76"
|
||||
TEMP_THRESHOLDS['ServerRoomTH']="83,88,95"
|
||||
TEMP_THRESHOLDS['RaspberryPI-CPU']="122,131,176"
|
||||
TEMP_THRESHOLDS['OctoPI-CPU']="122,131,176"
|
||||
declare -A PW_TEMP_THRESHOLDS
|
||||
# PW_TEMP_THRESHOLDS['ServerRoomTH']="72,74,76"
|
||||
PW_TEMP_THRESHOLDS['ServerRoomTH']="83,88,95"
|
||||
PW_TEMP_THRESHOLDS['RaspberryPI-CPU']="122,131,176"
|
||||
PW_TEMP_THRESHOLDS['OctoPI-CPU']="122,131,176"
|
||||
|
||||
|
||||
declare -A SENSOR_TYPE
|
||||
SENSOR_TYPE['ServerRoomTH']='mqtt'
|
||||
SENSOR_TYPE['RaspberryPI-CPU']='system'
|
||||
SENSOR_TYPE['OctoPI-CPU']='remotesystem'
|
||||
declare -A PW_SENSOR_TYPE
|
||||
PW_SENSOR_TYPE['ServerRoomTH']='mqtt'
|
||||
PW_SENSOR_TYPE['RaspberryPI-CPU']='system'
|
||||
PW_SENSOR_TYPE['OctoPI-CPU']='remotesystem'
|
||||
|
||||
declare -A REMOTE_SENSORS
|
||||
REMOTE_SENSORS['ServerRoomTH']='10.10.20.10'
|
||||
REMOTE_SENSORS['OctoPI-CPU']='10.10.1.80'
|
||||
declare -A PW_REMOTE_SENSORS
|
||||
PW_REMOTE_SENSORS['ServerRoomTH']='10.10.20.10'
|
||||
PW_REMOTE_SENSORS['OctoPI-CPU']='10.10.1.80'
|
||||
|
||||
declare -A SENSOR_ID
|
||||
SENSOR_ID['ServerRoomTH']='2'
|
||||
SENSOR_ID['RaspberryPI-CPU']='6'
|
||||
SENSOR_ID['OctoPI-CPU']='7'
|
||||
declare -A PW_SENSOR_ID
|
||||
PW_SENSOR_ID['ServerRoomTH']='2'
|
||||
PW_SENSOR_ID['RaspberryPI-CPU']='6'
|
||||
PW_SENSOR_ID['OctoPI-CPU']='7'
|
||||
|
||||
declare -A POWERWALL_SERVICES
|
||||
POWERWALL_SERVICES['temp']='monitor-temp'
|
||||
POWERWALL_SERVICES['power']='monitor-power'
|
||||
# POWERWALL_SERVICES['powerlogger']='monitor-powerlogger'
|
||||
declare -A PW_POWERWALL_SERVICES
|
||||
PW_POWERWALL_SERVICES['temp']='monitor-temp'
|
||||
PW_POWERWALL_SERVICES['power']='monitor-power'
|
||||
# PW_POWERWALL_SERVICES['powerlogger']='monitor-powerlogger'
|
||||
|
||||
declare -A ESXI_HOST_NAMES
|
||||
ESXI_HOST_NAMES['10.10.2.10']='ids-vms-scsi.scity.us'
|
||||
ESXI_HOST_NAMES['10.10.2.11']='ids-vms1.scity.us'
|
||||
ESXI_HOST_NAMES['10.10.2.12']='ids-vms2.scity.us'
|
||||
ESXI_HOST_NAMES['10.10.2.17']='ids-vms7.scity.us'
|
||||
declare -A PW_ESXI_HOST_NAMES
|
||||
PW_ESXI_HOST_NAMES['10.10.2.10']='ids-vms-scsi.scity.us'
|
||||
PW_ESXI_HOST_NAMES['10.10.2.11']='ids-vms1.scity.us'
|
||||
PW_ESXI_HOST_NAMES['10.10.2.12']='ids-vms2.scity.us'
|
||||
PW_ESXI_HOST_NAMES['10.10.2.17']='ids-vms7.scity.us'
|
||||
PW_ESXI_HOST_NAMES['10.2.1.18']='ids-vms-offsite.scity.us'
|
||||
|
||||
|
||||
MAINHOSTS=10.10.2.10,10.10.2.11,10.10.2.12
|
||||
SYSHOSTS=10.10.2.17
|
||||
ESXIHOSTS="${MAINHOSTS},${SYSHOSTS}"
|
||||
VCENTERHOST=10.10.1.30
|
||||
PW_VCENTERHOST=10.10.1.30
|
||||
PW_MAINHOSTS=10.10.2.10,10.10.2.11,10.10.2.12
|
||||
PW_SYSHOSTS=10.10.2.17
|
||||
PW_OFFSITEHOSTS=10.2.1.18
|
||||
PW_MAINSITE_HOSTS="${PW_MAINHOSTS},${PW_SYSHOSTS}"
|
||||
PW_ALL_HOSTS="${PW_MAINHOSTS},${PW_SYSHOSTS},${PW_OFFSITEHOSTS}"
|
||||
|
||||
IFS=,
|
||||
ESXIHOSTS=(${ESXIHOSTS})
|
||||
MAINHOSTS=(${MAINHOSTS})
|
||||
SYSHOSTS=(${SYSHOSTS})
|
||||
PW_MAINSITE_HOSTS=(${PW_MAINSITE_HOSTS})
|
||||
PW_MAINHOSTS=(${PW_MAINHOSTS})
|
||||
PW_SYSHOSTS=(${PW_SYSHOSTS})
|
||||
unset IFS
|
||||
|
||||
SENDNOTICE(){
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
|
||||
. /opt/idssys/powerwall/settings.ps1
|
||||
|
||||
Connect-VIServer -Server $VCENTERHOST -Protocol https -User $VCENTERUSER -Password $VCENTERPASS
|
||||
Connect-VIServer -Server $PW_VCENTERHOST -Protocol https -User $VCENTERUSER -Password $VCENTERPASS
|
||||
|
||||
Get-VMHost -Name $args[0] | set-vmhost -State Maintenance
|
||||
|
||||
254
powerwall.sh
254
powerwall.sh
@@ -6,7 +6,7 @@ action="${1}"
|
||||
source /opt/idssys/defaults/colors.inc
|
||||
source /opt/idssys/defaults/default.inc
|
||||
source /opt/idssys/powerwall/defaults.inc
|
||||
source ${FOLDER}/settings.conf
|
||||
source ${PW_FOLDER}/settings.conf
|
||||
|
||||
# TEST=true
|
||||
|
||||
@@ -26,7 +26,7 @@ CHECKTEMP(){
|
||||
# c=0; spc=''; spc1=`expr ${cw} - ${#1}`; until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
||||
# echo -e "${idsCL[LightCyan]}${1}${spc}${idsCL[Default]}: ${reading}"
|
||||
|
||||
for SENSOR in ${!SENSOR_ID[@]}; do
|
||||
for SENSOR in ${!PW_SENSOR_ID[@]}; do
|
||||
if [[ "${SENSOR}" = *"${1}"* ]]; then
|
||||
echo -en "${idsCL[Yellow]}Pulling data and calculating averages for '${SENSOR}' ..."
|
||||
reading=$(CHECKTEMPSENSOR ${SENSOR})
|
||||
@@ -36,7 +36,7 @@ CHECKTEMP(){
|
||||
done
|
||||
|
||||
else
|
||||
for SENSOR in ${!SENSOR_ID[@]}; do
|
||||
for SENSOR in ${!PW_SENSOR_ID[@]}; do
|
||||
echo -en "${idsCL[Yellow]}Pulling data and calculating averages for '${SENSOR}' ..."
|
||||
reading=$(CHECKTEMPSENSOR ${SENSOR})
|
||||
c=0; spc=''; spc1=`expr ${cw} - ${#SENSOR}`; until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
||||
@@ -46,21 +46,21 @@ CHECKTEMP(){
|
||||
[ "${action}" != "" ] && echo
|
||||
}
|
||||
CHECKTEMPSENSOR(){
|
||||
echo ${TEMP_THRESHOLDS[${1}]} | cut -d',' -f 1 | read temp_warn
|
||||
echo ${TEMP_THRESHOLDS[${1}]} | cut -d',' -f 2 | read temp_crit
|
||||
average=$(AVERAGETEMP ${SENSOR_ID[${1}]} 3)
|
||||
echo ${PW_TEMP_THRESHOLDS[${1}]} | cut -d',' -f 1 | read temp_warn
|
||||
echo ${PW_TEMP_THRESHOLDS[${1}]} | cut -d',' -f 2 | read temp_crit
|
||||
average=$(AVERAGETEMP ${PW_SENSOR_ID[${1}]} 3)
|
||||
|
||||
if [ "${SENSOR_TYPE[${1}]}" == "mqtt" ]; then
|
||||
if [ "${PW_SENSOR_TYPE[${1}]}" == "mqtt" ]; then
|
||||
mqtt_message=`${mqtt_conn} -t tele/${1}/SENSOR -C 1`
|
||||
echo $mqtt_message | cut -d':' -f 6 | cut -d',' -f 1 | read temp_c
|
||||
|
||||
elif [ "${SENSOR_TYPE[${1}]}" == "system" ]; then
|
||||
elif [ "${PW_SENSOR_TYPE[${1}]}" == "system" ]; then
|
||||
temp_c=$(vcgencmd measure_temp)
|
||||
temp_c=${temp_c%\'*}; temp_c=${temp_c#*=}
|
||||
|
||||
elif [ "${SENSOR_TYPE[${1}]}" == "remotesystem" ]; then
|
||||
if [ "$(CHECK_HOST ${REMOTE_SENSORS[${1}]})" != "false" ]; then
|
||||
temp_c=$(ssh root@${REMOTE_SENSORS[${1}]} vcgencmd measure_temp)
|
||||
elif [ "${PW_SENSOR_TYPE[${1}]}" == "remotesystem" ]; then
|
||||
if [ "$(CHECK_HOST ${PW_REMOTE_SENSORS[${1}]})" != "false" ]; then
|
||||
temp_c=$(ssh root@${PW_REMOTE_SENSORS[${1}]} vcgencmd measure_temp)
|
||||
temp_c=${temp_c%\'*}; temp_c=${temp_c#*=}
|
||||
|
||||
fi
|
||||
@@ -114,32 +114,32 @@ CHECKTEMP_SERVICE(){
|
||||
declare -A last_temp
|
||||
while true; do
|
||||
|
||||
for SENSOR in ${!SENSOR_ID[@]}; do
|
||||
logtemp=${LOGFOLDER}/log-temp-${SENSOR}
|
||||
for SENSOR in ${!PW_SENSOR_ID[@]}; do
|
||||
logtemp=${PW_LOGFOLDER}/log-temp-${SENSOR}
|
||||
[ ! -f ${logtemp} ] && touch ${logtemp}
|
||||
errtime=$(expr `date +%s` - $(stat -c %Y ${logtemp}))
|
||||
[ $errtime -ge 3600 ] && relog=1 || relog=0
|
||||
|
||||
if [ "${REMOTE_SENSORS[${SENSOR}]}" == "" ] || ([ "${REMOTE_SENSORS[${SENSOR}]}" != "" ] && [ "$(CHECK_HOST ${REMOTE_SENSORS[${SENSOR}]})" != "false" ]); then
|
||||
if [ -f ${TMPFOLDER}/${SENSOR}.down ]; then
|
||||
if [ "${PW_REMOTE_SENSORS[${SENSOR}]}" == "" ] || ([ "${PW_REMOTE_SENSORS[${SENSOR}]}" != "" ] && [ "$(CHECK_HOST ${PW_REMOTE_SENSORS[${SENSOR}]})" != "false" ]); then
|
||||
if [ -f ${PW_TMPFOLDER}/${SENSOR}.down ]; then
|
||||
SENDNOTICE "${SENSOR} Online" "${SENSOR} Sensor is back online"
|
||||
echo "($datetime) - ${SENSOR} - ${SENSOR} Sensor is back onlione" >> ${logtemp}
|
||||
rm -f ${TMPFOLDER}/${SENSOR}.down
|
||||
rm -f ${PW_TMPFOLDER}/${SENSOR}.down
|
||||
|
||||
fi
|
||||
|
||||
if [ "${SENSOR_TYPE[${SENSOR}]}" == "mqtt" ]; then
|
||||
if [ "${PW_SENSOR_TYPE[${SENSOR}]}" == "mqtt" ]; then
|
||||
mqtt_message=`${mqtt_conn} -t tele/${SENSOR}/SENSOR -C 1`
|
||||
echo $mqtt_message | cut -d':' -f 7 | cut -d',' -f 1 | read temp_h
|
||||
echo $mqtt_message | cut -d':' -f 6 | cut -d',' -f 1 | read temp_c
|
||||
|
||||
elif [ "${SENSOR_TYPE[${SENSOR}]}" == "system" ]; then
|
||||
elif [ "${PW_SENSOR_TYPE[${SENSOR}]}" == "system" ]; then
|
||||
temp_c=$(vcgencmd measure_temp)
|
||||
temp_c=${temp_c%\'*}; temp_c=${temp_c#*=}
|
||||
temp_h=''
|
||||
|
||||
elif [ "${SENSOR_TYPE[${SENSOR}]}" == "remotesystem" ]; then
|
||||
temp_c=$(ssh root@${REMOTE_SENSORS[${SENSOR}]} vcgencmd measure_temp)
|
||||
elif [ "${PW_SENSOR_TYPE[${SENSOR}]}" == "remotesystem" ]; then
|
||||
temp_c=$(ssh root@${PW_REMOTE_SENSORS[${SENSOR}]} vcgencmd measure_temp)
|
||||
temp_c=${temp_c%\'*}; temp_c=${temp_c#*=}
|
||||
temp_h=''
|
||||
|
||||
@@ -147,17 +147,17 @@ CHECKTEMP_SERVICE(){
|
||||
datetime=`date +'%Y-%m-%d %H:%M:%S'`
|
||||
|
||||
if [ "$temp_c" != "null" ] && [ "$temp_c" != "" ]; then
|
||||
if [ -f ${TMPFOLDER}/${SENSOR}-error.reading ]; then
|
||||
if [ -f ${PW_TMPFOLDER}/${SENSOR}-error.reading ]; then
|
||||
SENDNOTICE "${SENSOR} Data" "${SENSOR} is reporting data again"
|
||||
echo "($datetime) - ${SENSOR} - ${SENSOR} is reporting data again" >> ${logtemp}
|
||||
rm -f ${TMPFOLDER}/${SENSOR}-error.reading
|
||||
rm -f ${PW_TMPFOLDER}/${SENSOR}-error.reading
|
||||
|
||||
fi
|
||||
temp_f=`echo "scale=2; $temp_c*1.8 + 32" | bc`
|
||||
|
||||
echo ${TEMP_THRESHOLDS[${SENSOR}]} | cut -d',' -f 1 | read temp_warn
|
||||
echo ${TEMP_THRESHOLDS[${SENSOR}]} | cut -d',' -f 2 | read temp_crit
|
||||
echo ${TEMP_THRESHOLDS[${SENSOR}]} | cut -d',' -f 3 | read temp_crit_sys
|
||||
echo ${PW_TEMP_THRESHOLDS[${SENSOR}]} | cut -d',' -f 1 | read temp_warn
|
||||
echo ${PW_TEMP_THRESHOLDS[${SENSOR}]} | cut -d',' -f 2 | read temp_crit
|
||||
echo ${PW_TEMP_THRESHOLDS[${SENSOR}]} | cut -d',' -f 3 | read temp_crit_sys
|
||||
|
||||
if [ "${last_temp[${SENSOR}]}" != "" ]; then
|
||||
temp_diff=`expr ${last_temp[${SENSOR}]%.*} - ${temp_f%.*}`
|
||||
@@ -168,7 +168,7 @@ CHECKTEMP_SERVICE(){
|
||||
fi
|
||||
|
||||
if [ $(bc -l <<< "$temp_f >= $temp_warn") -eq 1 ] && [ $(bc -l <<< "$temp_f < $temp_crit") -eq 1 ]; then
|
||||
touch ${TMPFOLDER}/temp.warn
|
||||
touch ${PW_TMPFOLDER}/temp.warn
|
||||
if [ $temp_diff -gt 1 ] || [ "${last_temp[${SENSOR}]}" = "1" ]; then
|
||||
SENDNOTICE "${SENSOR} TEMP WARNING" "($datetime) WARNING TEMP: ${temp_f}'F - (Difference of ${temp_diff}')" 1
|
||||
echo "($datetime) - ${temp_f}'F - alert sent" >> ${logtemp}
|
||||
@@ -177,86 +177,86 @@ CHECKTEMP_SERVICE(){
|
||||
fi
|
||||
|
||||
elif [ $(bc -l <<< "$temp_f >= $temp_crit") -eq 1 ] && [ $(bc -l <<< "$temp_f < $temp_crit_sys") -eq 1 ]; then
|
||||
touch ${TMPFOLDER}/temp.crit
|
||||
touch ${PW_TMPFOLDER}/temp.crit
|
||||
if [ $temp_diff -gt 1 ] || [ "${last_temp[${SENSOR}]}" = "1" ]; then
|
||||
SENDNOTICE "${SENSOR} TEMP CRITICAL" "($datetime) CRITICAL TEMP: ${temp_f}'F - (Difference of ${temp_diff}')
|
||||
Shutting down servers!!" 1
|
||||
echo "($datetime) - ${temp_f}'F - CRITICAL - (Difference of ${temp_diff}'F)" >> ${logtemp}
|
||||
echo "($datetime) - ${temp_f}'F - alert sent" >> ${logtemp}
|
||||
echo -e "($datetime) - ${SENSOR} - ${temp_f}'F - CRITICAL TEMP - (Difference of ${temp_diff}')" >> ${logfile}
|
||||
echo -e "($datetime) - ${SENSOR} - ${temp_f}'F - CRITICAL TEMP - (Difference of ${temp_diff}')" >> ${PW_LOGFILE}
|
||||
last_temp[${SENSOR}]=$temp_f
|
||||
SHUTDOWN_MAIN ${SENSOR} &
|
||||
echo -e "($datetime) - ${temp_f}'F - Shutting down MAIN servers" >> ${logtemp}
|
||||
|
||||
fi
|
||||
elif [ $(bc -l <<< "$temp_f >= $temp_crit_sys") -eq 1 ]; then
|
||||
touch ${TMPFOLDER}/temp.critsys
|
||||
touch ${PW_TMPFOLDER}/temp.critsys
|
||||
if [ $temp_diff -gt 1 ] || [ "${last_temp[${SENSOR}]}" = "1" ]; then
|
||||
SENDNOTICE "${SENSOR} TEMP CRITICAL" "($datetime) SYSTEM CRITICAL TEMP: ${temp_f}'F - (Difference of ${temp_diff}')
|
||||
Shutting down system servers!!" 1
|
||||
echo "($datetime) - ${temp_f}'F - SYSTEM CRITICAL - (Difference of ${temp_diff})" >> ${logtemp}
|
||||
echo "($datetime) - ${temp_f}'F - alert sent" >> ${logtemp}
|
||||
echo -e "($datetime) - ${temp_f}'F - ${SENSOR} - CRITICAL TEMP SYSTEM - (Difference of ${temp_diff}')" >> ${logfile}
|
||||
echo -e "($datetime) - ${temp_f}'F - ${SENSOR} - CRITICAL TEMP SYSTEM - (Difference of ${temp_diff}')" >> ${PW_LOGFILE}
|
||||
last_temp[${SENSOR}]=$temp_f
|
||||
SHUTDOWN_SYS ${SENSOR} TEMP &
|
||||
SHUTDOWN_CRIT ${SENSOR} &
|
||||
echo -e "($datetime) - ${temp_f}'F - Shutting down SYS servers" >> ${logtemp}
|
||||
fi
|
||||
else
|
||||
[ ! -f ${TMPFOLDER}/temp.* ] && [ $(expr `date +%s` - $(stat -c %Y ${TMPFOLDER}/.${SENSOR}.sentdaily)) -gt 600 ] && [ $(date +%H)$(date +%M) -ge 0700 ] && [ $(date +%H)$(date +%M) -lt 0705 ] && touch ${TMPFOLDER}/.${SENSOR}.sentdaily && SENDNOTICE "Daily Temp Readings" "$(DAILYTEMP)" &
|
||||
[ ! -f ${PW_TMPFOLDER}/temp.* ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/.${SENSOR}.sentdaily)) -gt 600 ] && [ $(date +%H)$(date +%M) -ge 0700 ] && [ $(date +%H)$(date +%M) -lt 0705 ] && touch ${PW_TMPFOLDER}/.${SENSOR}.sentdaily && SENDNOTICE "Daily Temp Readings" "$(DAILYTEMP)" &
|
||||
|
||||
if [ ${last_temp[${SENSOR}]} -gt 1 ]; then
|
||||
SENDNOTICE "${SENSOR} BACK TO NORMAL" "($datetime) NORMAL TEMP: ${temp_f}'F
|
||||
Previous Temp: ${last_temp[${SENSOR}]}'F"
|
||||
echo -e "($datetime) - ${temp_f}'F - Back to NORMAL TEMP - Previous Temp: ${last_temp[${SENSOR}]}'F" >> ${logtemp}
|
||||
echo "($datetime) - ${temp_f}'F - alert sent" >> ${logtemp}
|
||||
echo -e "($datetime) - ${temp_f}'F - ${SENSOR} - Back to NORMAL TEMP" >> ${logfile}
|
||||
[ "$(compgen -G "${FOLDER}/shutdown.*")" != "" ] && rm -f ${FOLDER}/shutdown.*
|
||||
echo -e "($datetime) - ${temp_f}'F - ${SENSOR} - Back to NORMAL TEMP" >> ${PW_LOGFILE}
|
||||
[ "$(compgen -G "${PW_FOLDER}/shutdown.*")" != "" ] && rm -f ${PW_FOLDER}/shutdown.*
|
||||
|
||||
elif [ ${last_temp[${SENSOR}]} -eq 0 ]; then
|
||||
SENDNOTICE "${SENSOR} TEMP NORMAL" "($datetime) Service Startup
|
||||
NORMAL TEMP: ${temp_f}'F"
|
||||
echo -e "($datetime) - ${temp_f}'F - Service Startup - NORMAL TEMP" >> ${logtemp}
|
||||
echo -e "($datetime) - ${temp_f}'F - ${SENSOR} - Service Startup" >> ${logfile}
|
||||
[ "$(compgen -G "${FOLDER}/shutdown.*")" != "" ] && rm -f ${FOLDER}/shutdown.*
|
||||
echo -e "($datetime) - ${temp_f}'F - ${SENSOR} - Service Startup" >> ${PW_LOGFILE}
|
||||
[ "$(compgen -G "${PW_FOLDER}/shutdown.*")" != "" ] && rm -f ${PW_FOLDER}/shutdown.*
|
||||
|
||||
elif [ $relog -eq 1 ]; then
|
||||
echo "($datetime) - ${temp_f}'F - Normal Temp" >> ${logtemp}
|
||||
|
||||
fi
|
||||
rm -f ${TMPFOLDER}/temp.*
|
||||
rm -f ${PW_TMPFOLDER}/temp.*
|
||||
last_temp[${SENSOR}]=1
|
||||
fi
|
||||
|
||||
[ -f ${TMPFOLDER}/${SENSOR}.insert ] && lastinsert=$(expr `date +%s` - $(stat -c %Y ${TMPFOLDER}/${SENSOR}.insert)) || lastinsert=100000
|
||||
if [ "$(compgen -G "${TMPFOLDER}/temp.*")" != "" ] || [ "$(compgen -G "${TMPFOLDER}/power.ac.*")" != "" ] || [ "$(compgen -G "${TMPFOLDER}/power.dc.*")" != "" ]; then
|
||||
[ -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
|
||||
else
|
||||
wait=300
|
||||
fi
|
||||
if [ ${lastinsert} -ge ${wait} ]; then
|
||||
if [ "${temp_h}" != "" ]; then
|
||||
QRY="USE servermonitor; INSERT INTO sensor_data (\`sensorid\`, \`date\`, \`temp\`, \`hum\`) VALUES ('${SENSOR_ID[${SENSOR}]}','${datetime}','${temp_f}','${temp_h}')"
|
||||
QRY="USE servermonitor; INSERT INTO sensor_data (\`sensorid\`, \`date\`, \`temp\`, \`hum\`) VALUES ('${PW_SENSOR_ID[${SENSOR}]}','${datetime}','${temp_f}','${temp_h}')"
|
||||
else
|
||||
QRY="USE servermonitor; INSERT INTO sensor_data (\`sensorid\`, \`date\`, \`temp\`) VALUES ('${SENSOR_ID[${SENSOR}]}','${datetime}','${temp_f}')"
|
||||
QRY="USE servermonitor; INSERT INTO sensor_data (\`sensorid\`, \`date\`, \`temp\`) VALUES ('${PW_SENSOR_ID[${SENSOR}]}','${datetime}','${temp_f}')"
|
||||
fi
|
||||
${mysql_conn} -e "${QRY}"
|
||||
touch ${TMPFOLDER}/${SENSOR}.insert
|
||||
touch ${PW_TMPFOLDER}/${SENSOR}.insert
|
||||
fi
|
||||
else
|
||||
if [ ! -f ${TMPFOLDER}/${SENSOR}-error.reading ] || [ $(expr `date +%s` - $(stat -c %Y ${TMPFOLDER}/${SENSOR}-error.reading)) -ge 1800 ]; then
|
||||
if [ ! -f ${PW_TMPFOLDER}/${SENSOR}-error.reading ] || [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/${SENSOR}-error.reading)) -ge 1800 ]; then
|
||||
SENDNOTICE "${SENSOR} Sensor ERROR" "($datetime) ERROR reading sensor data" 1
|
||||
echo "($datetime) - ${SENSOR} Sensor - ERROR reading sensor data" >> ${logtemp}
|
||||
touch ${TMPFOLDER}/${SENSOR}-error.reading
|
||||
touch ${PW_TMPFOLDER}/${SENSOR}-error.reading
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
else
|
||||
if [ ! -f ${TMPFOLDER}/${SENSOR}.down ] || [ $(expr `date +%s` - $(stat -c %Y ${TMPFOLDER}/${SENSOR}.down)) -ge 1800 ]; then
|
||||
if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.down ] || [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/${SENSOR}.down)) -ge 1800 ]; then
|
||||
SENDNOTICE "${SENSOR} ERROR" "${SENSOR} Sensor is down" 1
|
||||
echo "($datetime) - ${SENSOR} - ${SENSOR} Sensor is down" >> ${logtemp}
|
||||
touch ${TMPFOLDER}/${SENSOR}.down
|
||||
touch ${PW_TMPFOLDER}/${SENSOR}.down
|
||||
|
||||
fi
|
||||
fi
|
||||
@@ -274,15 +274,15 @@ DAILYTEMP(){
|
||||
echo
|
||||
echo -e "Sensor Temperature(s) Now / 1DayAVG / 7DayAVG"
|
||||
DIVIDER . . 60
|
||||
for SENSOR in ${!SENSOR_ID[@]}; do
|
||||
average1=$(AVERAGETEMP ${SENSOR_ID[$SENSOR]} 1)
|
||||
average7=$(AVERAGETEMP ${SENSOR_ID[$SENSOR]} 7)
|
||||
for SENSOR in ${!PW_SENSOR_ID[@]}; do
|
||||
average1=$(AVERAGETEMP ${PW_SENSOR_ID[$SENSOR]} 1)
|
||||
average7=$(AVERAGETEMP ${PW_SENSOR_ID[$SENSOR]} 7)
|
||||
|
||||
if [ "${SENSOR_TYPE[${SENSOR}]}" == "mqtt" ]; then
|
||||
if [ "${PW_SENSOR_TYPE[${SENSOR}]}" == "mqtt" ]; then
|
||||
mqtt_message=`${mqtt_conn} -t tele/${SENSOR}/SENSOR -C 1`
|
||||
temp_c=$(echo $mqtt_message | cut -d':' -f 6 | cut -d',' -f 1)
|
||||
|
||||
elif [ "${SENSOR_TYPE[${SENSOR}]}" == "system" ]; then
|
||||
elif [ "${PW_SENSOR_TYPE[${SENSOR}]}" == "system" ]; then
|
||||
temp_c=$(vcgencmd measure_temp)
|
||||
temp_c=${temp_c%\'*}; temp_c=${temp_c#*=}
|
||||
|
||||
@@ -331,12 +331,12 @@ CHECKPOWER(){
|
||||
CHECKPOWER_SERVICE(){
|
||||
voltstatus=0
|
||||
battstatus=0
|
||||
# rm -f ${TMPFOLDER}/powerlogger.insert
|
||||
# rm -f ${PW_TMPFOLDER}/powerlogger.insert
|
||||
while true; do
|
||||
INVSTATSINFO=$(curl -s "http://10.10.0.61/stats.json")
|
||||
if [ "${INVSTATSINFO}" != "" ]; then
|
||||
[ -f ${TMPFOLDER}/powerlogger.insert ] && lastinsert=$(expr `date +%s` - $(stat -c %Y ${TMPFOLDER}/powerlogger.insert)) || lastinsert=100000
|
||||
if [ "$(compgen -G "${TMPFOLDER}/temp.*")" != "" ] || [ "$(compgen -G "${TMPFOLDER}/power.ac.*")" != "" ] || [ "$(compgen -G "${TMPFOLDER}/power.dc.*")" != "" ]; then
|
||||
[ -f ${PW_TMPFOLDER}/powerlogger.insert ] && lastinsert=$(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/powerlogger.insert)) || lastinsert=100000
|
||||
if [ "$(compgen -G "${PW_TMPFOLDER}/temp.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.ac.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.dc.*")" != "" ]; then
|
||||
wait=60
|
||||
else
|
||||
wait=300
|
||||
@@ -350,46 +350,46 @@ CHECKPOWER_SERVICE(){
|
||||
datetime=`date +'%Y-%m-%d %H:%M:%S'`
|
||||
if [ ${INPUTACV} -ge ${min_acvolt} ]; then
|
||||
if [ $voltstatus -eq 3 ]; then
|
||||
echo "($datetime) - ${INPUTACV}V - Back to Normal Voltage" >> ${logpower}
|
||||
echo "($datetime) - ${INPUTACV}V - Back to Normal Voltage" >> ${PW_LOGPOWER}
|
||||
SENDNOTICE "POWER NOMINAL AGAIN" "($datetime) Normal voltage detected
|
||||
VOLTAGE: ${INPUTACV}V"
|
||||
echo "($datetime) alert sent" >> ${logpower}
|
||||
echo -e "($datetime) - ${INPUTACV}V - POWER NOMINAL AGAIN" >> ${logfile}
|
||||
echo "($datetime) alert sent" >> ${PW_LOGPOWER}
|
||||
echo -e "($datetime) - ${INPUTACV}V - POWER NOMINAL AGAIN" >> ${PW_LOGFILE}
|
||||
battstatus=0
|
||||
else
|
||||
errtime=$(expr `date +%s` - $(stat -c %Y ${logpower}))
|
||||
[ $errtime -ge 3600 ] && echo "($datetime) - ${INPUTACV}V - Normal Voltage" >> ${logpower}
|
||||
errtime=$(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER}))
|
||||
[ $errtime -ge 3600 ] && echo "($datetime) - ${INPUTACV}V - Normal Voltage" >> ${PW_LOGPOWER}
|
||||
if [ $voltstatus -eq 0 ]; then
|
||||
SENDNOTICE "Power Nominal" "($datetime) Service Startup
|
||||
Normal voltage detected
|
||||
VOLTAGE: ${INPUTACV}V
|
||||
BATT VOLTAGE: ${BATTVOLT}V"
|
||||
echo "($datetime) - Input: ${INPUTACV}V - Service Startup - Normal voltage detected" >> ${logpower}
|
||||
echo -e "($datetime) - ${INPUTACV}V / ${BATTVOLT}V - Service Startup - Normal Voltage" >> ${logfile}
|
||||
echo "($datetime) - Input: ${INPUTACV}V - Service Startup - Normal voltage detected" >> ${PW_LOGPOWER}
|
||||
echo -e "($datetime) - ${INPUTACV}V / ${BATTVOLT}V - Service Startup - Normal Voltage" >> ${PW_LOGFILE}
|
||||
fi
|
||||
fi
|
||||
voltstatus=1
|
||||
rm -f ${TMPFOLDER}/power.ac.*
|
||||
rm -f ${PW_TMPFOLDER}/power.ac.*
|
||||
else
|
||||
echo "($datetime) - ${INPUTACV}V - POWER OFF/LOW POWER" >> ${logpower}
|
||||
echo -e "($datetime) - ${INPUTACV}V - POWER OFF/LOW POWER" >> ${logfile}
|
||||
echo "($datetime) - ${INPUTACV}V - POWER OFF/LOW POWER" >> ${PW_LOGPOWER}
|
||||
echo -e "($datetime) - ${INPUTACV}V - POWER OFF/LOW POWER" >> ${PW_LOGFILE}
|
||||
if [ $voltstatus -lt 3 ]; then
|
||||
SENDNOTICE "POWER ALERT - POWER OFF/LOW POWER!!" "($datetime) Power off or low voltage detected
|
||||
VOLTAGE: ${INPUTACV}V
|
||||
BATT VOLTAGE: ${BATTVOLT}V" 1
|
||||
echo "($datetime) alert sent" >> ${logpower}
|
||||
echo "($datetime) alert sent" >> ${PW_LOGPOWER}
|
||||
last_battvolt=$BATTVOLT
|
||||
fi
|
||||
voltstatus=3
|
||||
touch ${TMPFOLDER}/power.ac.low
|
||||
touch ${PW_TMPFOLDER}/power.ac.low
|
||||
fi
|
||||
|
||||
if [ ${BATTVOLT%.*} -lt ${min_battvolt} ] && [ ${BATTVOLT%.*} -gt ${min_battvolt_sys} ]; then
|
||||
echo "($datetime) - ${BATTVOLT}V - LOW BATTERY Voltage" >> ${logpower}
|
||||
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${logfile}
|
||||
touch ${TMPFOLDER}/power.dc.low
|
||||
echo "($datetime) - ${BATTVOLT}V - LOW BATTERY Voltage" >> ${PW_LOGPOWER}
|
||||
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${PW_LOGFILE}
|
||||
touch ${PW_TMPFOLDER}/power.dc.low
|
||||
if [ $battstatus -lt 2 ] && [ ${INPUTACV} -lt ${min_acvolt} ]; then
|
||||
echo "($datetime) - ${BATTVOLT}V - Shutting down main servers..." >> ${logpower}
|
||||
echo "($datetime) - ${BATTVOLT}V - Shutting down main servers..." >> ${PW_LOGPOWER}
|
||||
SENDNOTICE "BATT-VOLT LOW: SHUTDOWN MAIN SERVERS" "($datetime) Battery Voltage LOW: ${BATTVOLT}V
|
||||
Shutting down main servers" 1
|
||||
SHUTDOWN_MAIN power &
|
||||
@@ -397,11 +397,11 @@ CHECKPOWER_SERVICE(){
|
||||
fi
|
||||
|
||||
elif [ ${BATTVOLT%.*} -le ${min_battvolt_sys} ]; then
|
||||
echo "($datetime) - ${BATTVOLT}V - LOW BATTERY Voltage" >> ${logpower}
|
||||
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${logfile}
|
||||
touch ${TMPFOLDER}/power.dc.low
|
||||
echo "($datetime) - ${BATTVOLT}V - LOW BATTERY Voltage" >> ${PW_LOGPOWER}
|
||||
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${PW_LOGFILE}
|
||||
touch ${PW_TMPFOLDER}/power.dc.low
|
||||
if [ $battstatus -lt 3 ] && [ ${INPUTACV} -lt ${min_acvolt} ]; then
|
||||
echo "($datetime) - ${BATTVOLT}V - Shutting down all remaining servers..." >> ${logpower}
|
||||
echo "($datetime) - ${BATTVOLT}V - Shutting down all remaining servers..." >> ${PW_LOGPOWER}
|
||||
SENDNOTICE "BATT-VOLT REALLY LOW: SHUTDOWN SYS SERVERS" "($datetime) Battery Voltage REALLY LOW: ${BATTVOLT}V
|
||||
Shutting down all servers" 1
|
||||
SHUTDOWN_SYS power &
|
||||
@@ -411,12 +411,12 @@ CHECKPOWER_SERVICE(){
|
||||
fi
|
||||
|
||||
else
|
||||
errtime=$(expr `date +%s` - $(stat -c %Y ${logpower}))
|
||||
[ $errtime -ge 3600 ] && echo "($datetime) - ${BATTVOLT}V - Battery Voltage" >> ${logpower}
|
||||
errtime=$(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER}))
|
||||
[ $errtime -ge 3600 ] && echo "($datetime) - ${BATTVOLT}V - Battery Voltage" >> ${PW_LOGPOWER}
|
||||
if [ $battstatus -eq 0 ]; then
|
||||
echo "($datetime) - Battery: ${BATTVOLT}V - Service Startup - Normal voltage detected" >> ${logpower}
|
||||
echo "($datetime) - Battery: ${BATTVOLT}V - Service Startup - Normal voltage detected" >> ${PW_LOGPOWER}
|
||||
fi
|
||||
rm -f ${TMPFOLDER}/power.dc.*
|
||||
rm -f ${PW_TMPFOLDER}/power.dc.*
|
||||
battstatus=1
|
||||
|
||||
fi
|
||||
@@ -425,7 +425,7 @@ CHECKPOWER_SERVICE(){
|
||||
[ $volt_diff -lt 0 ] && temp_diff=$(($volt_diff * -1))
|
||||
if [ $volt_diff -gt 0 ]; then
|
||||
SENDNOTICE "BATTERY VOLTAGE CHANGE" "($datetime) Battery Voltage: ${BATTVOLT}V"
|
||||
echo -e "($datetime) - ${BATTVOLT}V - Battery Voltage Change" >> ${logpower}
|
||||
echo -e "($datetime) - ${BATTVOLT}V - Battery Voltage Change" >> ${PW_LOGPOWER}
|
||||
last_battvolt=$BATTVOLT
|
||||
fi
|
||||
else
|
||||
@@ -465,7 +465,7 @@ POWERLOGGER(){
|
||||
QRY="INSERT INTO inv_jsonstats (\`date\`, \`data\`) VALUES ('${datetime}','${INVSTATSINFO}')"
|
||||
${mysql_conn} -e "USE servermonitor; ${QRY}"
|
||||
|
||||
touch ${TMPFOLDER}/powerlogger.insert
|
||||
touch ${PW_TMPFOLDER}/powerlogger.insert
|
||||
}
|
||||
|
||||
POWERLOGGER_SERVICE(){
|
||||
@@ -490,7 +490,7 @@ POWERLOGGER_SERVICE(){
|
||||
${mysql_conn} -e "USE servermonitor; ${QRY}"
|
||||
|
||||
|
||||
if [ "$(compgen -G "${TMPFOLDER}/temp.*")" != "" ] || [ "$(compgen -G "${TMPFOLDER}/power.ac.*")" != "" ] || [ "$(compgen -G "${TMPFOLDER}/power.dc.*")" != "" ]; then
|
||||
if [ "$(compgen -G "${PW_TMPFOLDER}/temp.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.ac.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.dc.*")" != "" ]; then
|
||||
sleep 1m
|
||||
else
|
||||
sleep 5m
|
||||
@@ -508,12 +508,12 @@ RESTARTALL_SERVICES(){
|
||||
STARTALL_SERVICES
|
||||
}
|
||||
STOPALL_SERVICES(){
|
||||
for srvc in "${!POWERWALL_SERVICES[@]}"; do
|
||||
for srvc in "${!PW_POWERWALL_SERVICES[@]}"; do
|
||||
SERVICE_MNG ${srvc} stop
|
||||
done
|
||||
}
|
||||
STARTALL_SERVICES(){
|
||||
for srvc in "${!POWERWALL_SERVICES[@]}"; do
|
||||
for srvc in "${!PW_POWERWALL_SERVICES[@]}"; do
|
||||
SERVICE_MNG ${srvc} start
|
||||
done
|
||||
}
|
||||
@@ -531,13 +531,13 @@ SERVICE_MNG(){
|
||||
sa='Status for'
|
||||
|
||||
fi
|
||||
echo -en "${idsCL[LightCyan]}${sa} ${POWERWALL_SERVICES[${1}]} Service ... "
|
||||
/bin/systemctl ${2} ${POWERWALL_SERVICES[${1}]}
|
||||
echo -en "${idsCL[LightCyan]}${sa} ${PW_POWERWALL_SERVICES[${1}]} Service ... "
|
||||
/bin/systemctl ${2} ${PW_POWERWALL_SERVICES[${1}]}
|
||||
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
||||
}
|
||||
STOP_SERVICE(){
|
||||
echo "stop: ${1}"
|
||||
service_pid=`systemctl show --property MainPID --value ${POWERWALL_SERVICES[${1}]}`
|
||||
service_pid=`systemctl show --property MainPID --value ${PW_POWERWALL_SERVICES[${1}]}`
|
||||
/usr/bin/pkill -P $service_pid
|
||||
}
|
||||
|
||||
@@ -546,7 +546,7 @@ CHECK_SERVICES(){
|
||||
echo -e "${idsCL[Yellow]}PowerWall Monitor Service Status"
|
||||
DIVIDER . yellow 75
|
||||
|
||||
for srvc in "${POWERWALL_SERVICES[@]}"; do
|
||||
for srvc in "${PW_POWERWALL_SERVICES[@]}"; do
|
||||
c=0; spc=''; spc1=`expr 25 - ${#srvc}`; until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
||||
echo -en "${idsCL[LightCyan]}${srvc}${spc}: "
|
||||
[ "$(systemctl is-active ${srvc})" == "active" ] && echo -en "${idsCL[Green]}Running" || echo -en "${idsCL[Yellow]}Not Running"
|
||||
@@ -570,7 +570,7 @@ SHUTDOWN_MAIN(){
|
||||
datetime=`date +'%Y-%m-%d %H:%M:%S'`
|
||||
SENDNOTICE "MAIN SERVERS SHUTDOWN" "($datetime) MAIN servers have been shutdown
|
||||
${reason}" 1
|
||||
echo -e "($datetime) - Main servers have been shutdown, ${reason}" >> ${logfile}
|
||||
echo -e "($datetime) - Main servers have been shutdown, ${reason}" >> ${PW_LOGFILE}
|
||||
fi
|
||||
|
||||
echo
|
||||
@@ -585,7 +585,7 @@ SHUTDOWN_SYS(){
|
||||
datetime=`date +'%Y-%m-%d %H:%M:%S'`
|
||||
SENDNOTICE "SYS SERVERS SHUTDOWN" "($datetime) SYS servers have been shutdown
|
||||
${reason}" 1
|
||||
echo -e "($datetime) - SYS servers have been shutdown, ${reason}" >> ${logfile}
|
||||
echo -e "($datetime) - SYS servers have been shutdown, ${reason}" >> ${PW_LOGFILE}
|
||||
fi
|
||||
|
||||
# curl --data "cmd=PWRoff" http://10.10.0.61/cmd
|
||||
@@ -594,15 +594,15 @@ SHUTDOWN_SYS(){
|
||||
SHUTDOWN_CRIT(){
|
||||
if [ "${1}" == "RaspberryPI-CPU" ]; then
|
||||
SENDNOTICE "${SENSOR} TEMP CRITICAL" "($datetime) Powerwall System shutting down" 1
|
||||
echo -e "($datetime) - CRITICAL TEMP - Powerwall System shutting down" >> ${LOGFOLDER}/log-temp-${1}
|
||||
echo -e "($datetime) - ${SENSOR} TEMP CRITICAL - Powerwall System shutting down" >> ${logfile}
|
||||
echo -e "($datetime) - CRITICAL TEMP - Powerwall System shutting down" >> ${PW_LOGFOLDER}/log-temp-${1}
|
||||
echo -e "($datetime) - ${SENSOR} TEMP CRITICAL - Powerwall System shutting down" >> ${PW_LOGFILE}
|
||||
/sbin/poweroff
|
||||
|
||||
elif [ "${1}" == "OctoPI-CPU" ]; then
|
||||
SENDNOTICE "${SENSOR} TEMP CRITICAL" "($datetime) OctoPI System shutting down" 1
|
||||
echo -e "($datetime) - CRITICAL TEMP - OctoPI System shutting down" >> ${LOGFOLDER}/log-temp-${1}
|
||||
echo -e "($datetime) - ${SENSOR} TEMP CRITICAL - OctoPI System shutting down" >> ${logfile}
|
||||
# ssh root@${REMOTE_SENSORS[${1}]} /sbin/poweroff
|
||||
echo -e "($datetime) - CRITICAL TEMP - OctoPI System shutting down" >> ${PW_LOGFOLDER}/log-temp-${1}
|
||||
echo -e "($datetime) - ${SENSOR} TEMP CRITICAL - OctoPI System shutting down" >> ${PW_LOGFILE}
|
||||
# ssh root@${PW_REMOTE_SENSORS[${1}]} /sbin/poweroff
|
||||
|
||||
fi
|
||||
}
|
||||
@@ -618,42 +618,42 @@ SHUTDOWN_SERVERS(){
|
||||
# /usr/bin/ssh root@${ESXIHOST} "/vmfs/volumes/iSCSI2-Datastore2\ \(R5\)\(1-4\)/\!SCRIPTS/esxidown/async-${ESXIHOST}.sh"
|
||||
# done
|
||||
|
||||
echo "($datetime) - Shutting down ${1} servers" >> ${logfile}
|
||||
[ $TEST = true ] && echo "RUNNING IN TEST MODE" >> ${logfile}
|
||||
echo "($datetime) - Shutting down ${1} servers" >> ${PW_LOGFILE}
|
||||
[ $TEST = true ] && echo "RUNNING IN TEST MODE" >> ${PW_LOGFILE}
|
||||
|
||||
if [ "${1}" = "MAIN" ]; then
|
||||
if [ ! -f $FOLDER/shutdown.main ]; then
|
||||
touch $FOLDER/shutdown.main
|
||||
echo -en "Disabling CLS in vCenter ... "
|
||||
if [ $TEST != true ]; then
|
||||
ssh root@${VCENTERHOST} "sed -i '/<domain-c1001>/{n;s/<enabled>.*<\/enabled>/<enabled>False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1
|
||||
ssh root@${VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1
|
||||
ssh root@${VCENTERHOST} "service-control --start vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1
|
||||
ssh root@${PW_VCENTERHOST} "sed -i '/<domain-c1001>/{n;s/<enabled>.*<\/enabled>/<enabled>False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1
|
||||
ssh root@${PW_VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1
|
||||
ssh root@${PW_VCENTERHOST} "service-control --start vmware-vpxd >/dev/null 2>&1" >/dev/null 2>&1
|
||||
fi
|
||||
echo "Done"
|
||||
|
||||
for ESXIHOST in "${ESXIHOSTS[@]}"; do
|
||||
for ESXIHOST in "${PW_MAINSITE_HOSTS[@]}"; do
|
||||
echo -en "Stopping iSCSI VM's on: ${ESXIHOST} ... "
|
||||
[ $TEST != true ] && ${FOLDER}/esxi-scripts/iscsi-vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
[ $TEST != true ] && ${PW_FOLDER}/esxi-scripts/iscsi-vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
echo "Done"
|
||||
done
|
||||
for ESXIHOST in "${ESXIHOSTS[@]}"; do
|
||||
for ESXIHOST in "${PW_MAINSITE_HOSTS[@]}"; do
|
||||
echo -en "Verifying iSCSI VM's stopped on: ${ESXIHOST} ... "
|
||||
[ $TEST != true ] && ${FOLDER}/esxi-scripts/iscsi-vm-shutdown-verify.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
[ $TEST != true ] && ${PW_FOLDER}/esxi-scripts/iscsi-vm-shutdown-verify.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
echo "Done"
|
||||
done
|
||||
# sleep 1m
|
||||
for ESXIHOST in "${MAINHOSTS[@]}"; do
|
||||
for ESXIHOST in "${PW_MAINHOSTS[@]}"; do
|
||||
echo -en "Stopping Remaining VM's on: ${ESXIHOST} ... "
|
||||
if [ $TEST != true ]; then
|
||||
ssh root@${ESXIHOST} 'esxcli system maintenanceMode set -e true -t 0' &
|
||||
${FOLDER}/esxi-scripts/vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
${FOLDER}/esxi-scripts/iscsi-server-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
${PW_FOLDER}/esxi-scripts/vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
${PW_FOLDER}/esxi-scripts/iscsi-server-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
fi
|
||||
echo "Done"
|
||||
done
|
||||
sleep 1m
|
||||
for ESXIHOST in "${MAINHOSTS[@]}"; do
|
||||
for ESXIHOST in "${PW_MAINHOSTS[@]}"; do
|
||||
echo -en "Shutting down host: ${ESXIHOST} ..."
|
||||
if [ $TEST != true ]; then
|
||||
ssh root@${ESXIHOST} 'esxcli system shutdown poweroff -d 10 -r "Automated ESXi host shutdown"'
|
||||
@@ -662,7 +662,7 @@ SHUTDOWN_SERVERS(){
|
||||
echo "Done"
|
||||
done
|
||||
|
||||
for ESXIHOST in "${MAINHOSTS[@]}"; do
|
||||
for ESXIHOST in "${PW_MAINHOSTS[@]}"; do
|
||||
echo -en "Waiting for Host (${ESXIHOST}) to shutdown... "
|
||||
if [ $TEST != true ]; then
|
||||
while ping -qw 10 -c3 "${ESXIHOST}">/dev/null 2>&1; do
|
||||
@@ -678,20 +678,20 @@ SHUTDOWN_SERVERS(){
|
||||
if [ ! -f $FOLDER/shutdown.sys ]; then
|
||||
touch $FOLDER/shutdown.sys
|
||||
|
||||
for ESXIHOST in "${SYSHOSTS[@]}"; do
|
||||
for ESXIHOST in "${PW_SYSHOSTS[@]}"; do
|
||||
echo -en "Suspending DB, PiHole & vCenter VM's on: ${ESXIHOST} ... "
|
||||
[ $TEST != true ] && ${FOLDER}/esxi-scripts/sys-suspend.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
[ $TEST != true ] && ${PW_FOLDER}/esxi-scripts/sys-suspend.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
echo "Done"
|
||||
done
|
||||
for ESXIHOST in "${SYSHOSTS[@]}"; do
|
||||
for ESXIHOST in "${PW_SYSHOSTS[@]}"; do
|
||||
echo -en "Shutting Down VM's on: ${ESXIHOST} ... "
|
||||
if [ $TEST != true ]; then
|
||||
${FOLDER}/esxi-scripts/vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
${FOLDER}/esxi-scripts/iscsi-server-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
${PW_FOLDER}/esxi-scripts/vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
${PW_FOLDER}/esxi-scripts/iscsi-server-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
fi
|
||||
echo "Done"
|
||||
done
|
||||
for ESXIHOST in "${SYSHOSTS[@]}"; do
|
||||
for ESXIHOST in "${PW_SYSHOSTS[@]}"; do
|
||||
echo -en "Shutting Down Host: ${ESXIHOST} ... "
|
||||
if [ $TEST != true ]; then
|
||||
ssh root@${ESXIHOST} 'esxcli system maintenanceMode set -e true -t 0'
|
||||
@@ -701,7 +701,7 @@ SHUTDOWN_SERVERS(){
|
||||
echo "Done"
|
||||
done
|
||||
|
||||
for ESXIHOST in "${SYSHOSTS[@]}"; do
|
||||
for ESXIHOST in "${PW_SYSHOSTS[@]}"; do
|
||||
echo -en "Waiting for Host (${ESXIHOST}) to shutdown ... "
|
||||
if [ $TEST != true ]; then
|
||||
while ping -qw 10 -c3 "${ESXIHOST}">/dev/null 2>&1; do
|
||||
@@ -714,17 +714,17 @@ SHUTDOWN_SERVERS(){
|
||||
fi
|
||||
}
|
||||
SHUTDOWN_SERVER(){
|
||||
echo "($datetime) - Shutting down ${1}" >> ${logfile}
|
||||
echo "($datetime) - Shutting down ${1}" >> ${PW_LOGFILE}
|
||||
|
||||
echo -en "Enabling Maintenance mode and will wait for iSCSI VM's to begin migrating ... "
|
||||
[ $TEST != true ] && ${FOLDER}/esxi-scripts/host-maintenance_mode.ps1 ${ESXI_HOST_NAMES[${1}]} & >/dev/null 2>&1
|
||||
[ $TEST != true ] && ${PW_FOLDER}/esxi-scripts/host-maintenance_mode.ps1 ${PW_ESXI_HOST_NAMES[${1}]} & >/dev/null 2>&1
|
||||
sleep 45s
|
||||
echo "Done"
|
||||
|
||||
echo -en "Shutting Down VM's on: ${1} ... "
|
||||
if [ $TEST != true ]; then
|
||||
${FOLDER}/esxi-scripts/vm-shutdown.ps1 ${1} >/dev/null 2>&1
|
||||
${FOLDER}/esxi-scripts/iscsi-server-shutdown.ps1 ${1} >/dev/null 2>&1
|
||||
${PW_FOLDER}/esxi-scripts/vm-shutdown.ps1 ${1} >/dev/null 2>&1
|
||||
${PW_FOLDER}/esxi-scripts/iscsi-server-shutdown.ps1 ${1} >/dev/null 2>&1
|
||||
fi
|
||||
echo "Done"
|
||||
|
||||
@@ -745,9 +745,9 @@ SHUTDOWN_SERVER(){
|
||||
}
|
||||
|
||||
ISCSIVMSHUTDOWN(){
|
||||
for ESXIHOST in "${ESXIHOSTS[@]}"; do
|
||||
for ESXIHOST in "${PW_MAINSITE_HOSTS[@]}"; do
|
||||
echo -en "${idsCL[LightCyan]}Shutting down any VM's on '${ESXIHOST}, that are running on an iSCSI drive ... "
|
||||
${FOLDER}/esxi-scripts/iscsi-vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
${PW_FOLDER}/esxi-scripts/iscsi-vm-shutdown.ps1 ${ESXIHOST} >/dev/null 2>&1
|
||||
echo -e "${idsCL[Green]}DONE${idsCL[Default]}"
|
||||
echo
|
||||
done
|
||||
@@ -763,10 +763,10 @@ LOGROTATE(){
|
||||
else
|
||||
ly=$(date +'%Y')
|
||||
fi
|
||||
ARCHIVEFOLDER=${LOGARCHIVE}/${ly}-${lm}
|
||||
ARCHIVEFOLDER=${PW_LOGARCHIVE}/${ly}-${lm}
|
||||
mkdir -p ${ARCHIVEFOLDER}
|
||||
mv ${LOGFOLDER}/log* ${ARCHIVEFOLDER}/
|
||||
# source ${FOLDER}/defaults.inc
|
||||
mv ${PW_LOGFOLDER}/log* ${ARCHIVEFOLDER}/
|
||||
# source ${PW_FOLDER}/defaults.inc
|
||||
# STARTALL_SERVICES
|
||||
}
|
||||
|
||||
@@ -851,14 +851,14 @@ fi
|
||||
elif [ "${3}" = "stop" ]; then
|
||||
if [ "${2}" = "temp" ]; then
|
||||
STOP_SERVICE temp
|
||||
for SENSOR in ${!SENSOR_ID[@]}; do
|
||||
logtemp=${LOGFOLDER}/log-temp-${SENSOR}
|
||||
for SENSOR in ${!PW_SENSOR_ID[@]}; do
|
||||
logtemp=${PW_LOGFOLDER}/log-temp-${SENSOR}
|
||||
echo "(`date +'%Y-%m-%d %H:%M:%S'`) - ${SENSOR} - Service Stopped" >> ${logtemp}
|
||||
done
|
||||
|
||||
elif [ "${2}" = "power" ]; then
|
||||
STOP_SERVICE power
|
||||
echo "(`date +'%Y-%m-%d %H:%M:%S'`) Service Stopped" >> ${logpower}
|
||||
echo "(`date +'%Y-%m-%d %H:%M:%S'`) Service Stopped" >> ${PW_LOGPOWER}
|
||||
|
||||
elif [ "${2}" = "powerlogger" ]; then
|
||||
STOP_SERVICE powerlogger
|
||||
@@ -871,7 +871,7 @@ fi
|
||||
SERVICE_MNG ${2} start
|
||||
|
||||
elif [ "${3}" = "status" ]; then
|
||||
srvc=${POWERWALL_SERVICES[${2}]}
|
||||
srvc=${PW_POWERWALL_SERVICES[${2}]}
|
||||
c=0; spc=''; spc1=`expr 25 - ${#srvc}`; until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
||||
echo -en "${idsCL[LightCyan]}${srvc}${spc}: "
|
||||
[ "$(systemctl is-active ${srvc})" == "active" ] && echo -en "${idsCL[Green]}Running" || echo -en "${idsCL[Yellow]}Not Running"
|
||||
|
||||
Reference in New Issue
Block a user