update
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
18
powerwall.sh
18
powerwall.sh
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user