Update power.inc.sh

This commit is contained in:
2024-01-12 08:43:17 -06:00
parent 9ca28013c7
commit cd824ea831

View File

@@ -1,15 +1,16 @@
AVERAGEPOWER(){
watttotal=0
total=0
sensorid=${1}
daysback=${2}
[ "${3}" != "" ] && ptype=${3} || ptype=watt
logsfound=0;
while IFS=$'\t' read date watt ;do
watttotal=$(bc <<< "scale=2; ${watttotal}+${watt}")
while IFS=$'\t' read date ${ptype} ;do
total=$(bc <<< "scale=2; ${total}+${!ptype}")
((logsfound++))
done < <(${mysql_conn} -se "USE servermonitor; SELECT date,watt from power_data WHERE sensorid=${sensorid} AND date BETWEEN DATE_SUB(DATE(NOW()), INTERVAL ${daysback} DAY) AND NOW() ORDER BY id DESC;")
[ "${logsfound}" != "0" ] && average=$(bc <<< "scale=2; ${watttotal}/${logsfound}/1") || average=0
# echo "$watttotal-$logsfound=${average}"
# echo "${average}-(${logsfound})"
done < <(${mysql_conn} -se "USE servermonitor; SELECT date,${ptype} from power_data WHERE sensorid=${sensorid} AND date BETWEEN DATE_SUB(DATE(NOW()), INTERVAL ${daysback} DAY) AND NOW() ORDER BY id DESC;")
[ "${logsfound}" != "0" ] && average=$(bc <<< "scale=2; ${total}/${logsfound}/1") || average=0
echo "$total-$logsfound=${average}"
echo "${average}-(${logsfound})"
echo ${average}
}
@@ -136,7 +137,17 @@ CHECKPOWER(){
if [ ${REPORT} -eq 0 ]; then
echo -en "\r\033[K"
echo -e "${idsCL[White]}ServerRack Amps ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${APCPDU_AMP}`'amps${idsCL[Default]}"
MSG="${idsCL[White]}ServerRack Amps ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${APCPDU_AMP}`'amps${idsCL[Default]}"
echo -en "${MSG}"
if [ "${avgdays}" != "" ]; then
echo -en "${idsCL[LightYellow]} Calculating average ...${idsCL[Default]}"
average=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['server-rack']} ${avgdays}); average_disp="${idsCL[LightYellow]} `IDS_NUMBER_FORMAT ${average} 0`'watts"
echo -en "\r\033[K"; echo -en "${MSG}${idsCL[LightYellow]}${average_disp}"
else
echo -en " ${idsCL[LightCyan]}(`IDS_NUMBER_FORMAT ${APCPDU_WATT2}` watts)"
fi
echo -e "${idsCL[Default]}"
MSG="${idsCL[White]}ServerRack Wattage ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${APCPDU_WATT} 0`'watts ${idsCL[Default]}~ est"
echo -en "${MSG}"
if [ "${avgdays}" != "" ]; then
@@ -155,10 +166,10 @@ CHECKPOWER(){
echo -en "${MSG}"
if [ "${avgdays}" != "" ]; then
echo -en "${idsCL[LightYellow]} Calculating average ...${idsCL[Default]}"
average=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['network-rack']} ${avgdays}); average_disp="${idsCL[LightYellow]} `IDS_NUMBER_FORMAT ${average}`'watts"
average=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['network-rack']} ${avgdays}); average_disp="${idsCL[LightYellow]} `IDS_NUMBER_FORMAT ${average} 0`'watts"
echo -en "\r\033[K"; echo -en "${MSG}${idsCL[LightYellow]}${average_disp}"
else
echo -en " ${idsCL[LightCyan]}(`IDS_NUMBER_FORMAT ${NETRK_WATT2}` watts) ${idsCL[Default]}~ est"
echo -en " ${idsCL[LightCyan]}(`IDS_NUMBER_FORMAT ${NETRK_WATT2} 0` watts) ${idsCL[Default]}~ est"
fi
echo -e "${idsCL[Default]}"
@@ -175,7 +186,7 @@ CHECKPOWER(){
echo -en "${MSG}"
if [ "${avgdays}" != "" ]; then
echo -en "${idsCL[LightYellow]} Calculating average ...${idsCL[Default]}"
average=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['total']} ${avgdays}); average_disp="${idsCL[LightYellow]} `IDS_NUMBER_FORMAT ${average}`'watts"
average=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['total']} ${avgdays}); average_disp="${idsCL[LightYellow]} `IDS_NUMBER_FORMAT ${average} 0`'watts"
echo -en "\r\033[K"; echo -e "${MSG}${idsCL[LightYellow]}${average_disp}${idsCL[Default]}"
else
echo -e "${idsCL[Default]}"
@@ -336,11 +347,11 @@ CHECKPOWER(){
done
DIVIDER . lightCyan 75
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}`'watts"
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]} `IDS_NUMBER_FORMAT ${AVERAGE_WATTS_MAINSITE} 0`'watts" || echo
fi
if [ "${STYPE}" == "" ] || [ "${STYPE}" == "offsite" ]; then
echo -en "${idsCL[LightCyan]}Offsite Total ${idsCL[Default]}: ${idsCL[LightGreen]}${SENSOR_TOTAL_AMPS_OFFSITE}'amps - `IDS_NUMBER_FORMAT ${SENSOR_TOTAL_WATTS_OFFSITE}`'watts"
echo -en "${idsCL[LightCyan]}Offsite Total ${idsCL[Default]}: ${idsCL[LightGreen]}${SENSOR_TOTAL_AMPS_OFFSITE}'amps - `IDS_NUMBER_FORMAT ${SENSOR_TOTAL_WATTS_OFFSITE} 0`'watts"
[ "${avgdays}" != "" ] && echo -e "${idsCL[LightYellow]} `IDS_NUMBER_FORMAT ${AVERAGE_WATTS_OFFSITE} 0`'watts" || echo
fi
fi