This commit is contained in:
2024-01-31 08:50:31 -06:00
parent 07c6e44c3b
commit 5fbc07347a
5 changed files with 33 additions and 32 deletions

View File

@@ -1,10 +1,11 @@
#!/usr/bin/env bash
VERS='2.5.221-01312024'
VERS='2.5.225-01312024'
noheader=' update service dailytemp confsync -r -report '
HC_CW=60
PRI_WIDTH=75
PW_FOLDER='/opt/idssys/powerwall'
PW_INCFOLDER=${PW_FOLDER}/inc

View File

@@ -5,7 +5,7 @@ Write-Progress -Activity "Connecting to vCenter [$VCENTERHOST] ..." -PercentComp
Connect-VIServer -Server $VCENTERHOST -Protocol https -User $VCENTERUSER -Password $VCENTERPASS | Out-Null
Write-Progress -Activity "Connected! Setting the new DRS Max vCPU ..." -PercentComplete 70
Write-Progress -Activity "Connected! Setting the new DRS Max vCPU ..." -PercentComplete ${PRI_WIDTH}
$spec = New-Object VMware.Vim.ClusterConfigSpecEx
$spec.DrsConfig = New-Object VMware.Vim.ClusterDrsConfigInfo

View File

@@ -65,9 +65,9 @@ CHECKPOWER(){
if ([ "${STYPE}" == "" ] || [ "${STYPE}" == "mainsite" ]) && [ "${PTYPE}" != "esxi" ]; then
[ ${REPORT} -eq 0 ] && echo
[ ${REPORT} -eq 0 ] && DIVIDER . yellow 75
[ ${REPORT} -eq 0 ] && DIVIDER . yellow ${PRI_WIDTH}
echo -e "${idsCL[Yellow]}Mainsite Power Information ${idsCL[LightYellow]}${avgdayshdr}"
DIVIDER . yellow 75
DIVIDER . yellow ${PRI_WIDTH}
[ ${REPORT} -eq 0 ] && echo -en "${idsCL[Yellow]}Pulling data from 'Powerwall' ... "
@@ -128,7 +128,7 @@ CHECKPOWER(){
echo -e "${idsCL[White]}Battery Amps Chg/DChg ${idsCL[Default]}: ${BATTA_disp}${idsCL[Default]}"
# echo
DIVIDER . lightCyan 75
DIVIDER . lightCyan ${PRI_WIDTH}
[ ${REPORT} -eq 0 ] && echo -en "${idsCL[Yellow]}Pulling data from 'ServerRoom' ... "
@@ -173,7 +173,7 @@ CHECKPOWER(){
echo -en "${idsCL[White]}ServerRack Wattage ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${APCPDU_WATT} 0`'watts ${idsCL[Default]}~ est"
[ "${avgdays}" != "" ] && echo -e "${idsCL[LightYellow]} `IDS_NUMBER_FORMAT ${APCPDU_WATT_avg} 0`'watts${idsCL[Default]}" || echo -e " ${idsCL[LightCyan]}(`IDS_NUMBER_FORMAT ${APCPDU_WATT2}` watts)${idsCL[Default]}"
DIVIDER . lightCyan 75
DIVIDER . lightCyan ${PRI_WIDTH}
if [ "${avgdays}" != "" ]; then
echo -en "${idsCL[Yellow]}Calculating NetworkRack Averages ... "
NETRK_avg=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['network-rack']} ${avgdays} both)
@@ -186,7 +186,7 @@ CHECKPOWER(){
echo -en "${idsCL[White]}NetworkRack Wattage ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${NETRK_WATT} 0`'watts ${idsCL[Default]}~ est"
[ "${avgdays}" != "" ] && echo -e "${idsCL[LightYellow]} `IDS_NUMBER_FORMAT ${NETRK_WATT_avg} 0`'watts${idsCL[Default]}" || echo -e " ${idsCL[LightCyan]}(`IDS_NUMBER_FORMAT ${NETRK_WATT2} 0` watts) ${idsCL[Default]}~ est${idsCL[Default]}"
DIVIDER . lightCyan 75
DIVIDER . lightCyan ${PRI_WIDTH}
fi
if [ "${avgdays}" != "" ]; then
echo -en "${idsCL[Yellow]}Calculating Server Room Total Averages ... "
@@ -208,9 +208,9 @@ CHECKPOWER(){
if ([ "${STYPE}" == "" ] || [ "${STYPE}" == "offsite" ]) && [ "${PTYPE}" != "esxi" ]; then
DIVIDER . yellow 75
DIVIDER . yellow ${PRI_WIDTH}
echo -e "${idsCL[Yellow]}Offsite Power Information ${idsCL[LightYellow]}${avgdayshdr}"
DIVIDER . yellow 75
DIVIDER . yellow ${PRI_WIDTH}
[ ${REPORT} -eq 0 ] && echo -en "${idsCL[Yellow]}Pulling data from 'Offsite' ... "
@@ -254,9 +254,9 @@ CHECKPOWER(){
fi
if [ "${PTYPE}" != "power" ]; then
DIVIDER . yellow 75
DIVIDER . yellow ${PRI_WIDTH}
echo -e "${idsCL[Yellow]}ESXi Host Power Information ${avgdayshdr}"
DIVIDER . yellow 75
DIVIDER . yellow ${PRI_WIDTH}
SENSOR_TOTAL_WATTS_MAINSITE=0
SENSOR_TOTAL_AMPS_MAINSITE=0
SENSOR_TOTAL_WATTS_OFFSITE=0
@@ -353,7 +353,7 @@ CHECKPOWER(){
fi
fi
done
DIVIDER . lightCyan 75
DIVIDER . lightCyan ${PRI_WIDTH}
if [ "${STYPE}" == "" ] || [ "${STYPE}" == "mainsite" ]; then
echo -en "${idsCL[LightCyan]}Mainsite Total ${idsCL[Default]}: ${idsCL[LightGreen]}${SENSOR_TOTAL_AMPS_MAINSITE}'amps - `IDS_NUMBER_FORMAT ${SENSOR_TOTAL_WATTS_MAINSITE} 0`'watts"
[ "${avgdays}" != "" ] && echo -e "${idsCL[LightYellow]} ${AVERAGE_AMPS_MAINSITE}'amps - `IDS_NUMBER_FORMAT ${AVERAGE_WATTS_MAINSITE} 0`'watts" || echo
@@ -691,7 +691,7 @@ HOSTPOWER(){
echo -e "\n${idsCL[Yellow]}POWERING ${2^^} '${PW_iDRACHOST_SHORTNAMES[${idracip}]}'"
DIVIDER . yellow 75
DIVIDER . yellow ${PRI_WIDTH}
if [ "${idracip}" != "" ]; then
@@ -767,9 +767,9 @@ PDUCONTROL(){
shift 1
done
echo
DIVIDER . yellow 75
DIVIDER . yellow ${PRI_WIDTH}
echo -e "${idsCL[Yellow]}APC-PDU Power Control"
DIVIDER true yellow 75
DIVIDER true yellow ${PRI_WIDTH}
until [ "${PORTSEL^^}" == "E" ]; do
[ "${PORT_SEL}" != "" ] && PORTSEL=${PORT_SEL}
if [ "${PORTSEL}" == "" ]; then

View File

@@ -68,13 +68,13 @@ CHECKTEMP(){
fi
if [ "${temptype}" != "esxi" ]; then
DIVIDER . yellow 70
DIVIDER . yellow ${PRI_WIDTH}
if [ "${avgdays}" != "noavg" ]; then
echo -e "${idsCL[LightYellow]}SENSOR TEMPERATURE(S) Current / ${idsCL[LightYellow]}${avgdays_disp}AVG ${idsCL[Yellow]}warning${idsCL[Default]} / ${idsCL[LightRed]}critical${idsCL[Default]}"
else
echo -e "${idsCL[LightYellow]}SENSOR TEMPERATURE(S) Current ${idsCL[Yellow]}warning${idsCL[Default]} / ${idsCL[LightRed]}critical${idsCL[Default]}"
fi
DIVIDER . yellow 70
DIVIDER . yellow ${PRI_WIDTH}
for SENSOR in ${PW_SENSOR_ORD[@]}; do
if ([ "${search}" == "" ] || [[ "${SENSOR,,}" = *"${search,,}"* ]]) && [ "${PW_SENSOR_TYPE[${SENSOR}]}" != "esxi" ] && ([ "${temptype}" != "fans" ] || ([ "${temptype}" == "fans" ] && [[ "${SENSOR}" = *"Room"* ]])); then
[ "${last_sensor}" == "${SENSOR%%-*}" ] && echo -en "\033[1A"
@@ -104,17 +104,17 @@ CHECKTEMP(){
last_sensor=${SENSOR%%-*}
fi
done
DIVIDER . yellow 70
DIVIDER . yellow ${PRI_WIDTH}
fi
if [ "${temptype}" != "sensors" ]; then
DIVIDER . yellow 70
DIVIDER . yellow ${PRI_WIDTH}
if [ "${avgdays}" != "noavg" ]; then
echo -e "${idsCL[LightYellow]}ESXI HOST TEMPERATURE(S) Current / ${idsCL[LightYellow]}${avgdays_disp}AVG ${idsCL[Yellow]}warning${idsCL[Default]} / ${idsCL[LightRed]}critical${idsCL[Default]}"
else
echo -e "${idsCL[LightYellow]}ESXI HOST TEMPERATURE(S) Current ${idsCL[Yellow]}warning${idsCL[Default]} / ${idsCL[LightRed]}critical${idsCL[Default]}"
fi
DIVIDER . yellow 70
DIVIDER . yellow ${PRI_WIDTH}
for SENSOR in ${PW_SENSOR_ORD[@]}; do
if ([ "${search}" == "" ] || [[ "${SENSOR,,}" = *"${search,,}"* ]]) && [ "${PW_SENSOR_TYPE[${SENSOR}]}" == "esxi" ]; then
vHOSTiDRACIP=${PW_HOST_IDRACS[${SENSOR}]}
@@ -151,7 +151,7 @@ CHECKTEMP(){
echo -e "${idsCL[Default]}"
fi
# if [ "${temptype}" != "fans" ]; then
DIVIDER . lightCyan 70
DIVIDER . lightCyan ${PRI_WIDTH}
echo -en "${idsCL[Yellow]}Pulling data for '${SENSOR}' ... "
# if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.down ] && [ "$(CHECK_HOST ${vHOSTIP})" != "false" ]; then
@@ -910,7 +910,7 @@ ESXI_FANSPEED_MGMT(){
fi
echo -e "${idsCL[Yellow]}Setting new FanSpeeds for the following ESXi Hosts:"
DIVIDER . yellow
DIVIDER . yellow ${PRI_WIDTH}
if [ "${PW_iDRACHOST_SHORTNAMES[${HOST}]}" != "" ]; then
tmp=${PW_iDRACHOST_SHORTNAMES[${HOST}]}
@@ -951,7 +951,7 @@ ESXI_FANSPEED_MGMT(){
[ -f ${PW_TMPFOLDER}/${PW_iDRACHOST_SHORTNAMES[${host}]}.down ] && echo " - Offline, skipping" || echo
fi
done
DIVIDER true yellow
DIVIDER true yellow ${PRI_WIDTH}
for host in ${PW_ESXI_FANSPEEDCONTROLHOSTS[@]}; do
tmp=temp

View File

@@ -67,7 +67,7 @@ STOP_SERVICE(){
CHECK_SERVICES(){
echo
echo -e "${idsCL[Yellow]}PowerWall Monitor Service Status"
DIVIDER . yellow 75
DIVIDER . yellow ${PRI_WIDTH}
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
@@ -229,10 +229,10 @@ SHUTDOWN_SERVER(){
fi
echo
DIVIDER . yellow 75
DIVIDER . yellow ${PRI_WIDTH}
[ ${MM} -eq 1 ] && smsg="Entering Maintenance Mode" || smsg="Shutting down"
echo -e "${idsCL[LightYellow]}${hostname}${idsCL[Yellow]} - ${smsg}${idsCL[Default]}"
DIVIDER . yellow 75
DIVIDER . yellow ${PRI_WIDTH}
echo
if [ "${ESXI_HOSTS}" != "" ]; then
@@ -490,7 +490,7 @@ VERIFY_ISCSI_VM_DOWN(){
HOSTMGMT(){
echo -e "\n${idsCL[Yellow]}Host Controls${idsCL[Default]}"
DIVIDER . yellow 75
DIVIDER . yellow ${PRI_WIDTH}
HOST=${1}
if [ "${HOST}" != "-s" ] && [ "${HOST,,}" != "-status" ] && [ "${HOST}" != "-h" ] && [ "${HOST,,}" != "-help" ] && [ "${HOST}" != "" ]; then
@@ -567,14 +567,14 @@ HOSTMGMT(){
echo -en "${idsCL[LightCyan]}Host IP: ${idsCL[Green]}${ESXI_HOST}${spcB}"
echo -e "${idsCL[LightCyan]}iDrac IP: ${idsCL[Green]}${idracip}${idsCL[Default]}"
fi
DIVIDER . yellow 75
DIVIDER . yellow ${PRI_WIDTH}
if [ ${MN} -eq 1 ]; then
var=PW_${ESXI_HOST}HOSTS[@]; v=1
for vhost in "${!var}"; do
echo -e " ${v})${idsCL[LightCyan]} ${PW_ESXI_HOST_NAMES[${vhost}]} [${vhost}]${idsCL[Default]}"
((v++))
done
DIVIDER . yellow 75
DIVIDER . yellow ${PRI_WIDTH}
fi
echo
@@ -711,7 +711,7 @@ LOGROTATE(){
GET_SNAPSHOTS(){
echo -e "\n${idsCL[Yellow]}LISTING ALL VM SNAPHOTS IN VCENTER ${idsCL[Default]}(minus offsite replicas)"
DIVIDER . lightGreen 70
DIVIDER . lightGreen ${PRI_WIDTH}
${PW_FOLDER}/esxi-scripts/get-snapshots.ps1
echo
@@ -756,11 +756,11 @@ TEST(){
#########################################################
if [[ "${1}" != *"_service" ]] && [[ "${noheader}" != *" ${1} "* ]] && [[ "${noheader}" != *" ${2} "* ]] && [[ "${noheader}" != *" ${3} "* ]] && [[ "${noheader}" != *" ${4} "* ]] && [[ "${noheader}" != *" ${5} "* ]]; then
echo
DIVIDER . lightGreen 75
DIVIDER . lightGreen ${PRI_WIDTH}
msg="|| PowerWall Management ${idsCL[Default]}"
c=0; spc=''; spc1=`expr 77 - ${#msg} - ${#VERS}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; c=`expr ${c} + 1`; done
echo -e "${idsCL[LightGreen]}${msg}${spc}${idsCL[LightGray]}v${VERS} ${idsCL[LightGreen]}||${idsCL[Default]}"
DIVIDER . lightGreen 75
DIVIDER . lightGreen ${PRI_WIDTH}
fi
# if [ ${PW_ACTION-x} ]; then
case ${PW_ACTION} in