update
This commit is contained in:
32
defaults.inc
32
defaults.inc
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
VERS='2.2.2-08132023'
|
VERS='2.2.3-08142023'
|
||||||
|
|
||||||
noheader=' update service dailytemp '
|
noheader=' update service dailytemp '
|
||||||
|
|
||||||
@@ -44,11 +44,11 @@ declare -A PW_SENSOR_TYPE
|
|||||||
PW_SENSOR_TYPE['ServerRoomTH']='mqtt'
|
PW_SENSOR_TYPE['ServerRoomTH']='mqtt'
|
||||||
PW_SENSOR_TYPE['RaspberryPI-CPU']='system'
|
PW_SENSOR_TYPE['RaspberryPI-CPU']='system'
|
||||||
PW_SENSOR_TYPE['OctoPI-CPU']='remotesystem'
|
PW_SENSOR_TYPE['OctoPI-CPU']='remotesystem'
|
||||||
PW_SENSOR_TYPE['esxi0']='esxi'
|
PW_SENSOR_TYPE['vMS-Host0']='esxi'
|
||||||
PW_SENSOR_TYPE['esxi1']='esxi'
|
PW_SENSOR_TYPE['vMS-Host1']='esxi'
|
||||||
PW_SENSOR_TYPE['esxi2']='esxi'
|
PW_SENSOR_TYPE['vMS-Host2']='esxi'
|
||||||
PW_SENSOR_TYPE['esxi7']='esxi'
|
PW_SENSOR_TYPE['vMS-Host7']='esxi'
|
||||||
PW_SENSOR_TYPE['esxi8']='esxi'
|
PW_SENSOR_TYPE['vMS-Host8']='esxi'
|
||||||
|
|
||||||
declare -A PW_REMOTE_SENSORS
|
declare -A PW_REMOTE_SENSORS
|
||||||
PW_REMOTE_SENSORS['ServerRoomTH']='10.10.20.10'
|
PW_REMOTE_SENSORS['ServerRoomTH']='10.10.20.10'
|
||||||
@@ -58,18 +58,18 @@ declare -A PW_SENSOR_ID
|
|||||||
PW_SENSOR_ID['ServerRoomTH']='2'
|
PW_SENSOR_ID['ServerRoomTH']='2'
|
||||||
PW_SENSOR_ID['RaspberryPI-CPU']='6'
|
PW_SENSOR_ID['RaspberryPI-CPU']='6'
|
||||||
PW_SENSOR_ID['OctoPI-CPU']='7'
|
PW_SENSOR_ID['OctoPI-CPU']='7'
|
||||||
# PW_SENSOR_ID['esxi0']='8'
|
PW_SENSOR_ID['vMS-Host0']='8'
|
||||||
# PW_SENSOR_ID['esxi1']='9'
|
PW_SENSOR_ID['vMS-Host1']='9'
|
||||||
# PW_SENSOR_ID['esxi2']='10'
|
PW_SENSOR_ID['vMS-Host2']='10'
|
||||||
# PW_SENSOR_ID['esxi7']='11'
|
PW_SENSOR_ID['vMS-Host7']='11'
|
||||||
# PW_SENSOR_ID['esxi8']='12'
|
PW_SENSOR_ID['vMS-Host8']='12'
|
||||||
|
|
||||||
declare -A PW_ESXI_MON_HOSTS
|
declare -A PW_ESXI_MON_HOSTS
|
||||||
PW_ESXI_MON_HOSTS['esxi0']='10.10.2.10'
|
PW_ESXI_MON_HOSTS['vMS-Host0']='10.10.2.10'
|
||||||
PW_ESXI_MON_HOSTS['esxi1']='10.10.2.11'
|
PW_ESXI_MON_HOSTS['vMS-Host1']='10.10.2.11'
|
||||||
PW_ESXI_MON_HOSTS['esxi2']='10.10.2.12'
|
PW_ESXI_MON_HOSTS['vMS-Host2']='10.10.2.12'
|
||||||
PW_ESXI_MON_HOSTS['esxi7']='10.10.2.17'
|
PW_ESXI_MON_HOSTS['vMS-Host7']='10.10.2.17'
|
||||||
PW_ESXI_MON_HOSTS['esxi8']='10.2.1.18'
|
PW_ESXI_MON_HOSTS['vMS-Host8']='10.2.1.18'
|
||||||
|
|
||||||
declare -A PW_ESXI_HOST_NAMES
|
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.10']='iDS-vMS-scsi.scity.us'
|
||||||
|
|||||||
130
powerwall.sh
130
powerwall.sh
@@ -29,14 +29,47 @@ CHECKTEMP(){
|
|||||||
for SENSOR in ${!PW_SENSOR_ID[@]}; do
|
for SENSOR in ${!PW_SENSOR_ID[@]}; do
|
||||||
if [[ "${SENSOR}" = *"${1}"* ]]; then
|
if [[ "${SENSOR}" = *"${1}"* ]]; then
|
||||||
echo -en "${idsCL[Yellow]}Pulling data and calculating averages for '${SENSOR}' ..."
|
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
|
if [ "${PW_SENSOR_TYPE[${SENSOR}]}" == "esxi" ]; then
|
||||||
echo -e "\r\033[K${idsCL[LightCyan]}${SENSOR}${spc}${idsCL[Default]}: ${reading}"
|
vHOSTIP=${PW_ESXI_MON_HOSTS[${SENSOR}]}
|
||||||
|
vHOSTNAME=${PW_ESXI_HOST_NAMES[${vHOSTIP}]}
|
||||||
|
if [ "$(CHECK_HOST ${vHOSTIP})" != "false" ]; then
|
||||||
|
vHOSTDATA=$(ssh root@${PW_RACADM_ACCESS} racadm -r ${vHOSTIP} -u ${PW_ESXI_USER} -p "'${PW_ESXI_PASS}'" getsensorinfo | grep " Temp" 2>&1)
|
||||||
|
IFS=$'\n' read -rd '' -a vHOSTDATA <<<"${vHOSTDATA}"; unset IFS
|
||||||
|
|
||||||
|
for sensordata in "${vHOSTDATA[@]}"; do
|
||||||
|
vSENSOR=$(echo ${sensordata} | cut -d'T' -f1 | xargs)
|
||||||
|
temp_c=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $2}' | sed -e 's/C//g'); temp_c=${temp_c/ /}
|
||||||
|
temp_warn=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $7}' | sed -e 's/C//g'); temp_warn=${temp_warn/ /}
|
||||||
|
temp_crit=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $4}' | sed -e 's/C//g'); temp_crit=${temp_crit/ /}
|
||||||
|
|
||||||
|
reading=$(CHECKTEMPSENSOR ${SENSOR} ${temp_c} ${temp_warn} ${temp_crit})
|
||||||
|
c=0; spc=''; spc1=`expr ${cw} - ${#vSENSOR}`; until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
||||||
|
echo -e "\r\033[K${idsCL[LightCyan]}${vSENSOR}${spc}${idsCL[Default]}: ${reading}"
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
else #host down
|
||||||
|
echo -e "\r\033[K${idsCL[Red]}${SENSOR} Host is down"
|
||||||
|
|
||||||
|
# if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.down ] || [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/${SENSOR}.down)) -ge 1800 ]; then
|
||||||
|
# SENDNOTICE "${vHOSTIP} ERROR" "${vHOSTNAME} Host is down" 1
|
||||||
|
# echo "($datetime) - ${vHOSTIP} - ${vHOSTNAME} Host is down" >> ${logtemp}
|
||||||
|
# touch ${PW_TMPFOLDER}/${EHOST}.down
|
||||||
|
# fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
reading=$(CHECKTEMPSENSOR ${SENSOR})
|
||||||
|
c=0; spc=''; spc1=`expr ${cw} - ${#SENSOR}`; until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
||||||
|
echo -e "\r\033[K${idsCL[LightCyan]}${SENSOR}${spc}${idsCL[Default]}: ${reading}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
else
|
else
|
||||||
for SENSOR in ${!PW_SENSOR_ID[@]}; do
|
for SENSOR in ${!PW_SENSOR_ID[@]}; do
|
||||||
|
if [[ "$"]]
|
||||||
echo -en "${idsCL[Yellow]}Pulling data and calculating averages for '${SENSOR}' ..."
|
echo -en "${idsCL[Yellow]}Pulling data and calculating averages for '${SENSOR}' ..."
|
||||||
reading=$(CHECKTEMPSENSOR ${SENSOR})
|
reading=$(CHECKTEMPSENSOR ${SENSOR})
|
||||||
c=0; spc=''; spc1=`expr ${cw} - ${#SENSOR}`; until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
c=0; spc=''; spc1=`expr ${cw} - ${#SENSOR}`; until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
||||||
@@ -49,7 +82,7 @@ CHECKTEMP(){
|
|||||||
CHECKTEMPSENSOR(){
|
CHECKTEMPSENSOR(){
|
||||||
echo ${PW_TEMP_THRESHOLDS[${1}]} | cut -d',' -f 1 | read temp_warn
|
echo ${PW_TEMP_THRESHOLDS[${1}]} | cut -d',' -f 1 | read temp_warn
|
||||||
echo ${PW_TEMP_THRESHOLDS[${1}]} | cut -d',' -f 2 | read temp_crit
|
echo ${PW_TEMP_THRESHOLDS[${1}]} | cut -d',' -f 2 | read temp_crit
|
||||||
average=$(AVERAGETEMP ${PW_SENSOR_ID[${1}]} 3)
|
[ "${PW_SENSOR_TYPE[${1}]}" != "esxi" ] && average=$(AVERAGETEMP ${PW_SENSOR_ID[${1}]} 3) || average=${2}
|
||||||
|
|
||||||
if [ "${PW_SENSOR_TYPE[${1}]}" == "mqtt" ]; then
|
if [ "${PW_SENSOR_TYPE[${1}]}" == "mqtt" ]; then
|
||||||
mqtt_message=`${mqtt_conn} -t tele/${1}/SENSOR -C 1`
|
mqtt_message=`${mqtt_conn} -t tele/${1}/SENSOR -C 1`
|
||||||
@@ -66,34 +99,9 @@ CHECKTEMPSENSOR(){
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
elif [ "${PW_SENSOR_TYPE[${1}]}" == "esxi" ]; then
|
elif [ "${PW_SENSOR_TYPE[${1}]}" == "esxi" ]; then
|
||||||
for e in ${!PW_ESXI_MON_HOSTS[@]}; do
|
temp_c=${2}
|
||||||
vHOSTIP=${PW_ESXI_MON_HOSTS[${e}]}
|
temp_warn=${3}
|
||||||
vHOSTNAME=${PW_ESXI_HOST_NAMES[${vHOSTIP}]}
|
temp_crit=${4}
|
||||||
if [ "$(CHECK_HOST ${vHOSTIP})" != "false" ]; then
|
|
||||||
vHOSTDATA=$(ssh root@${PW_RACADM_ACCESS} racadm -r ${vHOSTIP} -u ${PW_ESXI_USER} -p "'${PW_ESXI_PASS}'" getsensorinfo | grep " Temp" 2>&1)
|
|
||||||
IFS=$'\n' read -rd '' -a vHOSTDATA <<<"${vHOSTDATA}"; unset IFS
|
|
||||||
|
|
||||||
for sensordata in "${vHOSTDATA[@]}"; do
|
|
||||||
sensor=$(echo ${sensordata} | cut -d'T' -f1 | xargs)
|
|
||||||
temp_c=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $2}' | sed -e 's/C//g'); current=${current/ /}
|
|
||||||
temp_warn=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $7}' | sed -e 's/C//g'); warn=${warn/ /}
|
|
||||||
temp_crit=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $4}' | sed -e 's/C//g'); crit=${crit/ /}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
else #host down
|
|
||||||
if [ ! -f ${PW_TMPFOLDER}/${e}.down ] || [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/${e}.down)) -ge 1800 ]; then
|
|
||||||
SENDNOTICE "${vHOSTIP} ERROR" "${vHOSTNAME} Host is down" 1
|
|
||||||
echo "($datetime) - ${vHOSTIP} - ${vHOSTNAME} Host is down" >> ${logtemp}
|
|
||||||
touch ${PW_TMPFOLDER}/${e}.down
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -294,35 +302,35 @@ CHECKTEMP_SERVICE(){
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
else #esxi hosts
|
# else #esxi hosts
|
||||||
for e in ${!PW_ESXI_MON_HOSTS[@]}; do
|
# for e in ${!PW_ESXI_MON_HOSTS[@]}; do
|
||||||
vHOSTIP=${PW_ESXI_MON_HOSTS[${e}]}
|
# vHOSTIP=${PW_ESXI_MON_HOSTS[${e}]}
|
||||||
vHOSTNAME=${PW_ESXI_HOST_NAMES[${vHOSTIP}]}
|
# vHOSTNAME=${PW_ESXI_HOST_NAMES[${vHOSTIP}]}
|
||||||
if [ "$(CHECK_HOST ${vHOSTIP})" != "false" ]; then
|
# if [ "$(CHECK_HOST ${vHOSTIP})" != "false" ]; then
|
||||||
vHOSTDATA=$(ssh root@${PW_RACADM_ACCESS} racadm -r ${vHOSTIP} -u ${PW_ESXI_USER} -p "'${PW_ESXI_PASS}'" getsensorinfo | grep " Temp" 2>&1)
|
# vHOSTDATA=$(ssh root@${PW_RACADM_ACCESS} racadm -r ${vHOSTIP} -u ${PW_ESXI_USER} -p "'${PW_ESXI_PASS}'" getsensorinfo | grep " Temp" 2>&1)
|
||||||
IFS=$'\n' read -rd '' -a vHOSTDATA <<<"${vHOSTDATA}"; unset IFS
|
# IFS=$'\n' read -rd '' -a vHOSTDATA <<<"${vHOSTDATA}"; unset IFS
|
||||||
|
#
|
||||||
for sensordata in "${vHOSTDATA[@]}"; do
|
# for sensordata in "${vHOSTDATA[@]}"; do
|
||||||
sensor=$(echo ${sensordata} | cut -d'T' -f1 | xargs)
|
# sensor=$(echo ${sensordata} | cut -d'T' -f1 | xargs)
|
||||||
temp=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $2}' | sed -e 's/C//g'); current=${current/ /}
|
# temp=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $2}' | sed -e 's/C//g'); current=${current/ /}
|
||||||
warn=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $7}' | sed -e 's/C//g'); warn=${warn/ /}
|
# warn=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $7}' | sed -e 's/C//g'); warn=${warn/ /}
|
||||||
crit=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $4}' | sed -e 's/C//g'); crit=${crit/ /}
|
# crit=$(echo ${sensordata} | cut -d'p' -f2 | awk '/ / {print $4}' | sed -e 's/C//g'); crit=${crit/ /}
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
done
|
# done
|
||||||
|
#
|
||||||
|
#
|
||||||
else #host down
|
# else #host down
|
||||||
if [ ! -f ${PW_TMPFOLDER}/${e}.down ] || [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/${e}.down)) -ge 1800 ]; then
|
# if [ ! -f ${PW_TMPFOLDER}/${e}.down ] || [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/${e}.down)) -ge 1800 ]; then
|
||||||
SENDNOTICE "${vHOSTIP} ERROR" "${vHOSTNAME} Host is down" 1
|
# SENDNOTICE "${vHOSTIP} ERROR" "${vHOSTNAME} Host is down" 1
|
||||||
echo "($datetime) - ${vHOSTIP} - ${vHOSTNAME} Host is down" >> ${logtemp}
|
# echo "($datetime) - ${vHOSTIP} - ${vHOSTNAME} Host is down" >> ${logtemp}
|
||||||
touch ${PW_TMPFOLDER}/${e}.down
|
# touch ${PW_TMPFOLDER}/${e}.down
|
||||||
|
#
|
||||||
fi
|
# fi
|
||||||
|
#
|
||||||
fi
|
# fi
|
||||||
done
|
# done
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user