update
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
PW_VERS='2.10.t-05312025'
|
||||
PW_VERS='2.10.2-06012025'
|
||||
|
||||
noheader=' update service dailytemp confsync -r -report test '
|
||||
|
||||
@@ -107,7 +107,7 @@ SENDNOTICE(){
|
||||
if [ "${PUSHOVER_APP_TOKEN}" != "" ]; then
|
||||
SN_TIT="$(echo -e "${1}" | sed "s/\%/\%25 /g")"
|
||||
SN_MSG="$(echo -e "${2}" | sed "s/\%/\%25 /g")"
|
||||
if [ "${TEST_INPUTACV}" != "" ] || [ "${TEST_BATTVOLT}" != "" ]; then
|
||||
if [ ${TESTMODE} -eq 1 ]; then
|
||||
PUSH_TO_MOBILE "***TEST MODE***
|
||||
|
||||
${SN_MSG}
|
||||
|
||||
@@ -182,7 +182,7 @@ CHECKPOWER(){
|
||||
echo
|
||||
fi
|
||||
echo -en "${idsCL[White]}Inverter Input Volts ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${INPUTV}`'V"
|
||||
[ "${TEST_INPUTACV}" != "" ] && echo -e " ${idsCL[Yellow]}***TEST MODE***" || echo ""
|
||||
[ ${TESTMODE} -eq 1 ] && echo -e " ${idsCL[Yellow]}***TEST MODE***" || echo ""
|
||||
echo -e "${idsCL[White]}Inverter Input Amps ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${INPUTA}`'A"
|
||||
if [ ${REPORT} -eq 0 ]; then
|
||||
echo
|
||||
@@ -790,9 +790,7 @@ CHECKPOWER_SERVICE(){
|
||||
start=$(date +%s)
|
||||
log_start=$(date "+%Y-%m-%d %H:%M:%S")
|
||||
source ${PW_FOLDER}/defaults.inc
|
||||
|
||||
([ "${TEST_INPUTACV}" != "" ] || [ "${TEST_BATTVOLT}" != "" ]) && TESTMODE=1 || TESTMODE=0
|
||||
|
||||
|
||||
if [[ "${IP}" != "10.6.1"* ]]; then
|
||||
|
||||
INVSTATSINFO=$(curl -m 3 -s "http://${PW_INVERTER_IP}/stats.json")
|
||||
@@ -1003,11 +1001,11 @@ OFFSITE_CHECKPOWER_SERVICE(){
|
||||
PW_OFFSITE_SHUTDOWNSERVERS_AT_BATTCAP=98 #percent
|
||||
PW_OFFSITE_SHUTDOWNSERVERS_AFTER=1 #minutes
|
||||
PW_OFFSITE_WAIT_TO_POWER_SERVERS=1 #minutes
|
||||
TESTMODE="### TEST MODE ACTIVE ###
|
||||
TESTMSG="### TEST MODE ACTIVE ###
|
||||
|
||||
"
|
||||
else
|
||||
TESTMODE=""
|
||||
TESTMSG=""
|
||||
fi
|
||||
|
||||
# upsinfo=$(upsc offsite-ups)
|
||||
@@ -1043,7 +1041,7 @@ OFFSITE_CHECKPOWER_SERVICE(){
|
||||
fi
|
||||
|
||||
SENDNOTICE2(){
|
||||
MESSAGE="${TESTMODE}${2}
|
||||
MESSAGE="${TESTMSG}${2}
|
||||
|
||||
BATTERY CHARGE: ${OFFSITE_BATT_CAP}'%
|
||||
BATT RUNTIME: ${OFFSITE_BATT_RUNTIME}'mins
|
||||
@@ -1484,7 +1482,7 @@ HOSTPOWER(){
|
||||
MSG="Powering ON the SAS Enclosure"
|
||||
c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
echo -en "\n${idsCL[LightCyan]}${MSG}${MSG_SPC}: "
|
||||
if [ "${TEST}" != "true" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ]; then
|
||||
current_status=$(snmpwalk -t 3 -r 0 -v 1 -c public ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.3.3.1.1.4.14 | sed 's/.*: //')
|
||||
if [ "${current_status}" != "" ] && [ "${current_status}" != "1" ]; then
|
||||
run=$(snmpset -v 1 -c private ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.3.3.1.1.4.14 i 1 >/dev/null 2>&1)
|
||||
@@ -1498,7 +1496,7 @@ HOSTPOWER(){
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${TEST}" != "true" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ]; then
|
||||
current_status=$(ipmitool -I lanplus -H ${idracip} -U ${PW_ESXI_USER} -P "${ESXI_PASS}" chassis power status | grep "Power is ${2,,}")
|
||||
if [ "${current_status}" = "" ]; then
|
||||
echo -e "${idsCL[Green]}"
|
||||
@@ -1516,7 +1514,7 @@ HOSTPOWER(){
|
||||
MSG="Powering OFF the SAS Enclosure"
|
||||
c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
echo -en "${idsCL[LightCyan]}${MSG}${MSG_SPC}: "
|
||||
if [ "${TEST}" != "true" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ]; then
|
||||
if [ "$(CHECK_HOST ${PW_ISCSI_PRI_HOST})" = "false" ]; then
|
||||
run=$(snmpset -v 1 -c private ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.3.3.1.1.4.14 i 2 >/dev/null 2>&1)
|
||||
sleep 3s
|
||||
|
||||
35
powerwall.sh
35
powerwall.sh
@@ -11,7 +11,8 @@ source /opt/idssys/powerwall/inc/power.inc.sh
|
||||
source /opt/idssys/powerwall/inc/temp.inc.sh
|
||||
|
||||
|
||||
[ "${TESTMODE_ENABLE}" == "true" ] && TEST=true
|
||||
[ "${TESTMODE_ENABLE^^}" == "TRUE" ] && TESTMODE=1 || TESTMODE=0
|
||||
|
||||
|
||||
shopt -s lastpipe
|
||||
|
||||
@@ -280,7 +281,7 @@ SHUTDOWN_SERVER(){
|
||||
MSG="Increasing DRS CPU-Overcommit to 4"
|
||||
c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
echo -en "${idsCL[White]}${MSG}${MSG_SPC}: "
|
||||
if [ "${TEST}" != "true" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ]; then
|
||||
${PW_FOLDER}/esxi-scripts/set-drs.ps1 4 >/dev/null 2>&1 &
|
||||
echo -e "${idsCL[Green]}Command Sent${idsCL[Default]}\n"
|
||||
else
|
||||
@@ -298,7 +299,7 @@ SHUTDOWN_SERVER(){
|
||||
fi
|
||||
c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
echo -en "${idsCL[White]}${MSG}${idsCL[White]}${MSG_SPC}: "
|
||||
if [ "${TEST}" != "true" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ]; then
|
||||
if [ "${ESXI_HOST}" == "${PW_ISCSI_PRI_HOST}" ] || [ "${ESXI_HOST}" == "MAIN" ] || [ "${ESXI_HOST}" == "CONSERVE" ]; then
|
||||
${PW_FOLDER}/esxi-scripts/iscsi-vm-shutdown.ps1 >/dev/null 2>&1 &
|
||||
elif [ "${ESXI_HOST}" == "${PW_ISCSI_SYS_HOST}" ] || [ "${ESXI_HOST}" == "SYS" ]; then
|
||||
@@ -319,7 +320,7 @@ SHUTDOWN_SERVER(){
|
||||
# MSG="Disabling CLS for the Offsite Cluster in vCenter"
|
||||
# c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
# echo -en "${idsCL[White]}${MSG}${MSG_SPC}: "
|
||||
# if [ "${TEST}" != "true" ]; then
|
||||
# if [ ${TESTMODE} -eq 0 ]; then
|
||||
# run=$(ssh -q -o ConnectTimeout=3 -o ConnectionAttempts=1 root@${PW_VCENTERHOST} "sed -i '/<domain-c105105>/{n;s/<enabled>.*<\/enabled>/<enabled>False<\/enabled>/}' /etc/vmware-vpx/vpxd.cfg >/dev/null 2>&1" >/dev/null 2>&1)
|
||||
# echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
||||
# touch ${PW_TMPFOLDER}/shutdown.cls.offsite
|
||||
@@ -331,7 +332,7 @@ SHUTDOWN_SERVER(){
|
||||
MSG="Disabling CLS for the Primary Cluster in vCenter"
|
||||
c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
echo -en "${idsCL[White]}${MSG}${MSG_SPC}: "
|
||||
if [ "${TEST}" != "true" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ]; then
|
||||
run=$(ssh -q -o ConnectTimeout=3 -o ConnectionAttempts=1 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)
|
||||
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
||||
touch ${PW_TMPFOLDER}/shutdown.cls.mainsite
|
||||
@@ -342,7 +343,7 @@ SHUTDOWN_SERVER(){
|
||||
MSG="Restarting vCenter CLS Services"
|
||||
c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
echo -en "${idsCL[White]}${MSG}${MSG_SPC}: "
|
||||
if [ "${TEST}" != "true" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ]; then
|
||||
ssh -q -o ConnectTimeout=3 -o ConnectionAttempts=1 root@${PW_VCENTERHOST} "service-control --stop vmware-vpxd >/dev/null 2>&1 && service-control --start vmware-vpxd >/dev/null 2>&1" >/dev/null & 2>&1 &
|
||||
echo -e "${idsCL[Green]}Continuing in background${idsCL[Default]}"
|
||||
else
|
||||
@@ -356,7 +357,7 @@ SHUTDOWN_SERVER(){
|
||||
c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
echo -en "${idsCL[White]}${MSG//${PW_ESXI_HOST_NAMES[${ESXIHOST}]}/${idsCL[LightCyan]}${PW_ESXI_HOST_NAMES[${ESXIHOST}]}}${idsCL[White]}${MSG_SPC}: "
|
||||
[[ "${PW_HOST_IDRACS[${PW_ESXI_HOST_NAMES[${ESXIHOST}]}]}" = "10.6."* ]] && ESXI_PASS=${PW_ESXI_PASS_KP} || ESXI_PASS=${PW_ESXI_PASS}
|
||||
if [ "${TEST}" != "true" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ]; then
|
||||
if [ "$(ipmitool -I lanplus -H ${PW_HOST_IDRACS[${PW_ESXI_HOST_NAMES[${ESXIHOST}]}]} -U ${PW_ESXI_USER} -P "${ESXI_PASS}" chassis power status | grep 'Power is on')" != "" ]; then
|
||||
${PW_FOLDER}/esxi-scripts/host-maintenance_mode.ps1 ${PW_VCENTER_HOST_NAMES[${ESXIHOST}]} >/dev/null 2>&1 &
|
||||
sleep 10s
|
||||
@@ -377,7 +378,7 @@ SHUTDOWN_SERVER(){
|
||||
MSG="Starting iSCSI migrations"
|
||||
c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
echo -en "${idsCL[White]}${MSG}${MSG_SPC}: "
|
||||
if [ "${TEST}" != "true" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ]; then
|
||||
sleep 80s # up from 45s, then 60...
|
||||
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
||||
else
|
||||
@@ -391,7 +392,7 @@ SHUTDOWN_SERVER(){
|
||||
c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
echo -en "${idsCL[White]}${MSG}${idsCL[White]}${MSG_SPC}: "
|
||||
# for ESXIHOST in "${PW_MAINSITEHOSTS[@]}"; do
|
||||
if [ "${TEST}" != "true" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ]; then
|
||||
if [ "${1}" == "${PW_ISCSI_PRI_HOST}" ] || [ "${1}" == "MAIN" ]; then
|
||||
${PW_FOLDER}/esxi-scripts/iscsi-vm-shutdown-verify.ps1 >/dev/null 2>&1
|
||||
elif [ "${1}" == "${PW_ISCSI_SYS_HOST}" ] || [ "${1}" == "SYS" ]; then
|
||||
@@ -410,7 +411,7 @@ SHUTDOWN_SERVER(){
|
||||
fi
|
||||
# done
|
||||
|
||||
# if [ "${TEST}" != "true" ]; then
|
||||
# if [ ${TESTMODE} -eq 0 ]; then
|
||||
# nc_count=0
|
||||
# until [ -f ${PW_TMPFOLDER}/verify.iscsi.done ]; do
|
||||
# sleep 1s
|
||||
@@ -429,7 +430,7 @@ SHUTDOWN_SERVER(){
|
||||
fi
|
||||
c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
echo -en "${idsCL[White]}${MSG}${MSG_SPC}: "
|
||||
if [ "${TEST}" != "true" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ]; then
|
||||
if [ "${ESXI_HOST}" == "${PW_ISCSI_PRI_HOST}" ] || [ "${ESXI_HOST}" == "MAIN" ] || [ "${ESXI_HOST}" == "CONSERVE" ]; then
|
||||
${PW_FOLDER}/esxi-scripts/iscsi-server-shutdown.ps1 ${PW_ISCSI_PRI_HOST} >/dev/null 2>&1 &
|
||||
elif [ "${ESXI_HOST}" == "${PW_ISCSI_SYS_HOST}" ] || [ "${ESXI_HOST}" == "SYS" ]; then
|
||||
@@ -448,7 +449,7 @@ SHUTDOWN_SERVER(){
|
||||
MSG="Shutting down any remaining VM's"
|
||||
c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
echo -en "${idsCL[White]}${MSG//${PW_ESXI_HOST_NAMES[${ESXIHOST}]}/${idsCL[LightCyan]}${PW_ESXI_HOST_NAMES[${ESXIHOST}]}}${idsCL[White]}${MSG_SPC}: "
|
||||
if [ "${TEST}" != "true" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ]; then
|
||||
for ESXIHOST in "${ESXI_HOSTS[@]}"; do
|
||||
varvms="${PW_VCENTER_HOST_NAMES[${ESXIHOST}]},${varvms}"
|
||||
done
|
||||
@@ -483,7 +484,7 @@ SHUTDOWN_SERVER(){
|
||||
MSG="Waiting for ${PW_VCENTER_HOST_NAMES[${PW_MAIN_ISCSI}]} to shutdown"
|
||||
c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
echo -en "${idsCL[White]}${MSG//${PW_VCENTER_HOST_NAMES[${PW_MAIN_ISCSI}]}/${idsCL[LightCyan]}${PW_VCENTER_HOST_NAMES[${PW_MAIN_ISCSI}]}${idsCL[White]}}${MSG_SPC}: "
|
||||
if [ "${TEST}" != "true" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ]; then
|
||||
while ping -qw 10 -c3 "${PW_MAIN_ISCSI}">/dev/null 2>&1; do sleep 1; done
|
||||
sleep 5s
|
||||
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
||||
@@ -494,7 +495,7 @@ SHUTDOWN_SERVER(){
|
||||
MSG="Powering off SAS Enclosure"
|
||||
c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
echo -en "${idsCL[White]}${MSG}${MSG_SPC}: "
|
||||
if [ "${TEST}" != "true" ] && [ "$(CHECK_HOST ${PW_MAIN_ISCSI})" == "false" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ] && [ "$(CHECK_HOST ${PW_MAIN_ISCSI})" == "false" ]; then
|
||||
run=$(snmpset -v 1 -c private ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.3.3.1.1.4.14 i 2)
|
||||
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
||||
else
|
||||
@@ -515,7 +516,7 @@ SHUTDOWN_SERVER(){
|
||||
MSG="Decreasing DRS CPU-Overcommit back down to 2"
|
||||
c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
echo -en "${idsCL[White]}${MSG}${MSG_SPC}: "
|
||||
if [ "${TEST}" != "true" ]; then
|
||||
if [ ${TESTMODE} -eq 0 ]; then
|
||||
{ sleep 60s; ${PW_FOLDER}/esxi-scripts/set-drs.ps1 2 >/dev/null 2>&1; } &
|
||||
echo -e "${idsCL[Green]}Command Sent${idsCL[Default]}\n"
|
||||
else
|
||||
@@ -634,7 +635,7 @@ HOSTMGMT(){
|
||||
|
||||
([ "${HOST}" == "" ] || ([ "${POWER}" == "" ] && [ "${ESXI}" == "" ])) && echo -e "Invalid command arguments\n" && exit 1
|
||||
|
||||
if [ "${TEST}" != "true" ] && [ "${FORCE}" != "true" ] && ([ "${POWER^^}" == "OFF" ] || [ "${ESXI^^}" == "OFF" ] || [ ${MM} -eq 1 ]); then
|
||||
if [ ${TESTMODE} -eq 0 ] && [ "${FORCE}" != "true" ] && ([ "${POWER^^}" == "OFF" ] || [ "${ESXI^^}" == "OFF" ] || [ ${MM} -eq 1 ]); then
|
||||
if [ ${MM} -eq 1 ]; then
|
||||
read -n 1 -p "Are you sure you wish to put '${ESXI_HOST}' into maintenance mode ? (y/N): " choice
|
||||
else
|
||||
@@ -687,7 +688,7 @@ HOSTMGMT(){
|
||||
# MSG="Decreasing DRS CPU-Overcommit back down to 2"
|
||||
# c=0; MSG_SPC=''; spc1=`expr ${HC_CW} - ${#MSG}`; until [ ${c} = ${spc1} ]; do MSG_SPC="${MSG_SPC} "; ((c++)); done
|
||||
# echo -en "${idsCL[White]}${MSG}${MSG_SPC}: "
|
||||
# if [ "${TEST}" != "true" ]; then
|
||||
# if [ ${TESTMODE} -eq 0 ]; then
|
||||
# ${PW_FOLDER}/esxi-scripts/set-drs.ps1 2 >/dev/null 2>&1 &
|
||||
# echo -e "${idsCL[Green]}Command Sent${idsCL[Default]}\n"
|
||||
# else
|
||||
|
||||
Reference in New Issue
Block a user