From 374e506feaa3d29cf8d63321339d07f4aef34376 Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Sat, 21 Jun 2025 17:53:07 -0500 Subject: [PATCH] Update power.inc.sh --- inc/power.inc.sh | 214 +++++++++++++++++++++++------------------------ 1 file changed, 107 insertions(+), 107 deletions(-) diff --git a/inc/power.inc.sh b/inc/power.inc.sh index e3d1b366..1ac88bca 100644 --- a/inc/power.inc.sh +++ b/inc/power.inc.sh @@ -113,13 +113,13 @@ CHECKPOWER(){ INV_MODE=`echo ${INVSTATSINFO} | jq '.stats .power'` ([ "${INV_MODE}" != "3" ] && [ "${INV_MODE}" != "4" ] && [ "${INV_MODE}" != "E" ]) && INV_MODE_disp="${idsCL[Green]}${PW_INVERTER_MODES[${INV_MODE}]}" || INV_MODE_disp="${idsCL[LightRed]}${PW_INVERTER_MODES[${INV_MODE}]}" OUTPUTV=`echo ${INVSTATSINFO} | jq '.outputs .outV'` - OUTPUTV2=`echo "scale=2; ${OUTPUTV}/2" | bc` + OUTPUTV2=`echo "scale=2; ${OUTPUTV}/2" | tr -d $'\r' | bc` OUTPUTA=`echo ${INVSTATSINFO} | jq '.outputs .outA'` - OUTPUTA2=`echo "scale=2; ${OUTPUTA}*2" | bc` + OUTPUTA2=`echo "scale=2; ${OUTPUTA}*2" | tr -d $'\r' | bc` OUTPUTW=`echo ${INVSTATSINFO} | jq '.outputs .outW'` ([ ${TESTMODE} -eq 1 ] && [ "${TEST_BATTVOLT}" != "" ]) && BATTV=${TEST_BATTVOLT} || BATTV=`echo ${INVSTATSINFO} | jq '.inputs .battV'` BATTA=`echo ${INVSTATSINFO} | jq '.inputs .xfA'` - BATTLIFE=`echo "scale=2; (${BATTV}*100)/${BATT_FULL}" | bc` + BATTLIFE=`echo "scale=2; (${BATTV}*100)/${BATT_FULL}" | tr -d $'\r' | bc` if (( $(bc <<<"${BATTV} >= ${FLOAT_CHARGE}") )) || ([ "${PW_INVERTER_MODES[${INV_MODE}]}" == "AC Input" ] && (( $(bc <<<"${BATTA} < -2") ))); then if (( $(bc <<<"${BATTV} >= ${BULK_CHARGE}") )) || ([ "${PW_INVERTER_MODES[${INV_MODE}]}" == "AC Input" ] && (( $(bc <<<"${BATTA} < -2") ))); then BATTA_disp="${idsCL[Green]}`IDS_NUMBER_FORMAT ${BATTA}`'A ${idsCL[LightCyan]}- Bulk Charging" @@ -134,42 +134,42 @@ CHECKPOWER(){ fi # if [ "$(CHECK_HOST ${PW_UPS_IP})" != "false" ]; then SVRRM_VOLTIN=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.2.2.1.3.1.1 | sed 's/.*: //') - SVRRM_VOLTIN=`echo "scale=2; ${SVRRM_VOLTIN}/10" | bc` + SVRRM_VOLTIN=`echo "scale=2; ${SVRRM_VOLTIN}/10" | tr -d $'\r' | bc` SVRRM_VOLTOUT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.3.2.1.2.1.1 | sed 's/.*: //') - SVRRM_VOLTOUT=`echo "scale=2; ${SVRRM_VOLTOUT}/10" | bc` + SVRRM_VOLTOUT=`echo "scale=2; ${SVRRM_VOLTOUT}/10" | tr -d $'\r' | bc` SVRRM_WATT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.3.2.1.4.1.1 | sed 's/.*: //') SVRRM_AMP=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.3.2.1.3.1.1 | sed 's/.*: //') - SVRRM_AMP=`echo "scale=2; ${SVRRM_AMP}/100" | bc` + SVRRM_AMP=`echo "scale=2; ${SVRRM_AMP}/100" | tr -d $'\r' | bc` AIRCON_INFO=$(curl -m 3 -s http://${PW_REMOTE_SENSORS['ServerRoom-AC']}:8888/status/${PW_SENSOR_DEVICEID['ServerRoom-AC']} | jq '.dps') if [ "${AIRCON_INFO}" != "" ]; then AIRCON_AMP=$(echo "${AIRCON_INFO}" | grep '"18":' | cut -d' ' -f 4 | sed 's/,//g') - AIRCON_AMP=$(ROUND_NUMBER $(echo "scale=3; ${AIRCON_AMP}/1000" | bc -l) 2) + AIRCON_AMP=$(ROUND_NUMBER $(echo "scale=3; ${AIRCON_AMP}/1000" | tr -d $'\r' | bc -l) 2) AIRCON_WATT=$(echo "${AIRCON_INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') - AIRCON_WATT=$(echo "scale=1; ${AIRCON_WATT}/10" | bc -l) + AIRCON_WATT=$(echo "scale=1; ${AIRCON_WATT}/10" | tr -d $'\r' | bc -l) else AIRCON_AMP=0 AIRCON_WATT=0 fi - SVRRM_AMP_WAC=$(echo "scale=2; ${SVRRM_AMP}+${AIRCON_AMP}" | bc -l) - SVRRM_WATT_WAC=$(echo "scale=2; ${SVRRM_WATT}+${AIRCON_WATT}" | bc -l) + SVRRM_AMP_WAC=$(echo "scale=2; ${SVRRM_AMP}+${AIRCON_AMP}" | tr -d $'\r' | bc -l) + SVRRM_WATT_WAC=$(echo "scale=2; ${SVRRM_WATT}+${AIRCON_WATT}" | tr -d $'\r' | bc -l) # fi # # if [ "$(CHECK_HOST ${PW_APCPDU_IP})" != "false" ]; then APCPDU_AMP=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.1 | sed 's/.*: //') - APCPDU_AMP=`echo "scale=2; ${APCPDU_AMP}/10" | bc` + APCPDU_AMP=`echo "scale=2; ${APCPDU_AMP}/10" | tr -d $'\r' | bc` APCPDU_WATT2=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.1.16.0 | sed 's/.*: //') - APCPDU_WATT=`echo "scale=2; ${APCPDU_AMP}*${SVRRM_VOLTOUT}" | bc` + APCPDU_WATT=`echo "scale=2; ${APCPDU_AMP}*${SVRRM_VOLTOUT}" | tr -d $'\r' | bc` # fi if [ "${SVRRM_VOLTOUT}" != "" ]; then if [ "${APCPDU_AMP}" != "" ]; then - NETRK_AMP=`echo "scale=2; ${SVRRM_AMP}-${APCPDU_AMP}" | bc` - NETRK_WATT=`echo "scale=2; ${SVRRM_WATT}-${APCPDU_WATT}" | bc` - NETRK_WATT2=`echo "scale=2; ${SVRRM_WATT}-${APCPDU_WATT2}" | bc` + NETRK_AMP=`echo "scale=2; ${SVRRM_AMP}-${APCPDU_AMP}" | tr -d $'\r' | bc` + NETRK_WATT=`echo "scale=2; ${SVRRM_WATT}-${APCPDU_WATT}" | tr -d $'\r' | bc` + NETRK_WATT2=`echo "scale=2; ${SVRRM_WATT}-${APCPDU_WATT2}" | tr -d $'\r' | bc` fi - VOLT_DROP=`echo "scale=1; ${OUTPUTV2}-${SVRRM_VOLTIN}" | bc` + VOLT_DROP=`echo "scale=1; ${OUTPUTV2}-${SVRRM_VOLTIN}" | tr -d $'\r' | bc` fi @@ -313,11 +313,11 @@ CHECKPOWER(){ # UPS_VOLTIN=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.3.3.1.3.1 | sed 's/.*: //') # UPS_VOLTOUT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.4.4.1.2.1 | sed 's/.*: //') # UPS_LOAD=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.2.2.1.11.3 | sed 's/.*: //') - # UPS_LOAD=`echo "scale=2; ${UPS_LOAD}/10" | bc` + # UPS_LOAD=`echo "scale=2; ${UPS_LOAD}/10" | tr -d $'\r' | bc` # UPS_AMPSIN=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.2.1.33.1.3.3.1.4.1 | sed 's/.*: //')\ - # UPS_AMPSIN=`echo "scale=2; ${UPS_AMPSIN}/10" | bc` + # UPS_AMPSIN=`echo "scale=2; ${UPS_AMPSIN}/10" | tr -d $'\r' | bc` # UPS_AMPSOUT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.2.1.33.1.4.4.1.3.1 | sed 's/.*: //')\ - # UPS_AMPSOUT=`echo "scale=2; ${UPS_AMPSOUT}/10" | bc` + # UPS_AMPSOUT=`echo "scale=2; ${UPS_AMPSOUT}/10" | tr -d $'\r' | bc` # UPS_WATTS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.2.2.1.8.3 | sed 's/.*: //') # UPS_BATT_RUNTIME=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.1.18.0 | sed 's/.*: //') # UPS_BATT_VOLT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.1.10.0 | sed 's/.*: //') @@ -329,14 +329,14 @@ CHECKPOWER(){ UPS_VOLTOUT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.4.4.1.2.1 | sed 's/.*: //') UPS_LOAD=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.4.4.1.5.1 | sed 's/.*: //') UPS_AMPSIN=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.2.1.33.1.3.3.1.4.1 | sed 's/.*: //')\ - #UPS_AMPSIN=`echo "scale=2; ${UPS_AMPSIN}/10" | bc` + #UPS_AMPSIN=`echo "scale=2; ${UPS_AMPSIN}/10" | tr -d $'\r' | bc` UPS_AMPSOUT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.2.1.33.1.4.4.1.3.1 | sed 's/.*: //')\ - UPS_AMPSOUT=`echo "scale=2; ${UPS_AMPSOUT}/10" | bc` + UPS_AMPSOUT=`echo "scale=2; ${UPS_AMPSOUT}/10" | tr -d $'\r' | bc` # UPS_WATTS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.2.1.33.1.4.4.1.4.1 | sed 's/.*: //') - UPS_WATTS=`echo "scale=2; ${UPS_VOLTOUT}*${UPS_AMPSOUT}" | bc` + UPS_WATTS=`echo "scale=2; ${UPS_VOLTOUT}*${UPS_AMPSOUT}" | tr -d $'\r' | bc` UPS_BATT_RUNTIME=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.2.3.0 | sed 's/.*: //') UPS_BATT_VOLT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.2.5.0 | sed 's/.*: //') - UPS_BATT_VOLT=`echo "scale=2; ${UPS_BATT_VOLT}/10" | bc` + UPS_BATT_VOLT=`echo "scale=2; ${UPS_BATT_VOLT}/10" | tr -d $'\r' | bc` UPS_BATT_CAP=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.2.4.0 | sed 's/.*: //') [ "${PW_UPS_STATES[${UPS_STATUS}]}" != "" ] && UPS_DISP_STATUS=${PW_UPS_STATES[${UPS_STATUS}]} || UPS_DISP_STATUS=${UPS_STATUS} @@ -405,8 +405,8 @@ CHECKPOWER(){ fi for mSENSOR in "${!UPS_MISC[@]}"; do IFS=: read -r AMP WATT VOLT <<< ${UPS_MISC[${mSENSOR}]}; unset IFS - TOTAL_MISC_WATTS=`echo "scale=2; ${TOTAL_MISC_WATTS}+${WATT}" | bc` - TOTAL_MISC_AMPS=`echo "scale=2; ${TOTAL_MISC_AMPS}+${AMP}" | bc` + TOTAL_MISC_WATTS=`echo "scale=2; ${TOTAL_MISC_WATTS}+${WATT}" | tr -d $'\r' | bc` + TOTAL_MISC_AMPS=`echo "scale=2; ${TOTAL_MISC_AMPS}+${AMP}" | tr -d $'\r' | bc` AD1="${PW_MISCSENSOR_DESC[${mSENSOR}]}"; c=0; spc1=''; spca=`expr 25 - ${#AD1}`; until [ ${c} = ${spca} ]; do spc1="${spc1} "; ((c++)); done AD2=$(IDS_NUMBER_FORMAT ${AMP} 2 yes); c=0; spc2=''; spca=`expr ${wspc} - ${#AD2}`; until [ ${c} = ${spca} ]; do spc2="${spc2} "; ((c++)); done AD3=$(IDS_NUMBER_FORMAT ${WATT} 1 yes) @@ -472,11 +472,11 @@ CHECKPOWER(){ OFFSITE_VOLTIN=$(echo "${upsinfo}" | grep 'input.voltage:' | sed 's/.*: //') OFFSITE_VOLTOUT=$(echo "${upsinfo}" | grep 'output.voltage:' | sed 's/.*: //') OFFSITE_LOAD=$(echo "${upsinfo}" | grep 'ups.load:' | sed 's/.*: //') - OFFSITE_WATTS=`echo "scale=2; $(echo "scale=2; ${OFFSITE_LOAD}/100" | bc)*$(echo "${upsinfo}" | grep 'ups.realpower.nominal:' | sed 's/.*: //')" | bc` - OFFSITE_AMPS=`echo "scale=2; ${OFFSITE_WATTS}/${OFFSITE_VOLTOUT}" | bc` + OFFSITE_WATTS=`echo "scale=2; $(echo "scale=2; ${OFFSITE_LOAD}/100" | tr -d $'\r' | bc)*$(echo "${upsinfo}" | grep 'ups.realpower.nominal:' | sed 's/.*: //')" | tr -d $'\r' | bc` + OFFSITE_AMPS=`echo "scale=2; ${OFFSITE_WATTS}/${OFFSITE_VOLTOUT}" | tr -d $'\r' | bc` (( $(bc <<<"${OFFSITE_AMPS} < 1") )) && [[ "${OFFSITE_AMPS}" = *"."* ]] && OFFSITE_AMPS="0${OFFSITE_AMPS}" OFFSITE_BATT_RUNTIME=$(echo "${upsinfo}" | grep 'battery.runtime:' | sed 's/.*: //') - OFFSITE_BATT_RUNTIME=`echo "scale=2; ${OFFSITE_BATT_RUNTIME}/60" | bc` + OFFSITE_BATT_RUNTIME=`echo "scale=2; ${OFFSITE_BATT_RUNTIME}/60" | tr -d $'\r' | bc` OFFSITE_BATT_VOLT=$(echo "${upsinfo}" | grep 'battery.voltage:' | sed 's/.*: //') OFFSITE_BATT_CAP=$(echo "${upsinfo}" | grep 'battery.charge:' | sed 's/.*: //') @@ -511,8 +511,8 @@ CHECKPOWER(){ fi for mSENSOR in "${!OFFSITE_MISC[@]}"; do IFS=: read -r AMP WATT VOLT <<< ${OFFSITE_MISC[${mSENSOR}]}; unset IFS - TOTAL_MISC_WATTS=`echo "scale=2; ${TOTAL_MISC_WATTS}+${WATT}" | bc` - TOTAL_MISC_AMPS=`echo "scale=2; ${TOTAL_MISC_AMPS}+${AMP}" | bc` + TOTAL_MISC_WATTS=`echo "scale=2; ${TOTAL_MISC_WATTS}+${WATT}" | tr -d $'\r' | bc` + TOTAL_MISC_AMPS=`echo "scale=2; ${TOTAL_MISC_AMPS}+${AMP}" | tr -d $'\r' | bc` AD1="${PW_MISCSENSOR_DESC[${mSENSOR}]}"; c=0; spc1=''; spca=`expr 25 - ${#AD1}`; until [ ${c} = ${spca} ]; do spc1="${spc1} "; ((c++)); done AD2=$(IDS_NUMBER_FORMAT ${AMP} 2 yes); c=0; spc2=''; spca=`expr ${wspc} - ${#AD2}`; until [ ${c} = ${spca} ]; do spc2="${spc2} "; ((c++)); done AD3=$(IDS_NUMBER_FORMAT ${WATT} 1 yes) @@ -583,9 +583,9 @@ CHECKPOWER(){ KYLE_INFO=$(curl -m 3 -s http://${PW_REMOTE_SENSORS['KP-Power']}:8888/status/${PW_SENSOR_DEVICEID['KP-Power']} | jq '.dps') if [ "${KYLE_INFO}" != "" ]; then KYLE_AMP=$(echo "${KYLE_INFO}" | grep '"18":' | cut -d' ' -f 4 | sed 's/,//g') - KYLE_AMP=$(ROUND_NUMBER $(echo "scale=3; ${KYLE_AMP}/1000" | bc -l) 2) + KYLE_AMP=$(ROUND_NUMBER $(echo "scale=3; ${KYLE_AMP}/1000" | tr -d $'\r' | bc -l) 2) KYLE_WATT=$(echo "${KYLE_INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') - KYLE_WATT=$(echo "scale=1; ${KYLE_WATT}/10" | bc -l) + KYLE_WATT=$(echo "scale=1; ${KYLE_WATT}/10" | tr -d $'\r' | bc -l) else KYLE_AMP=0 KYLE_WATT=0 @@ -671,9 +671,9 @@ CHECKPOWER(){ PS2V=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.12.1.16.1.2 | sed 's/.*: //') if [ ${found} -eq 1 ] && [ "${HOST_WATTS}" != "0" ] && [ "${HOST_WATTS}" != "" ]; then - [ "${PS1}" != "0.0" ] && PS1=`echo "scale=1; ${PS1}/10" | bc` && (( $(bc <<<"${PS1} < 1") )) && [[ "${PS1}" = *"."* ]] && PS1="0${PS1}" - [ "${PS2}" != "0.0" ] && PS2=`echo "scale=1; ${PS2}/10" | bc` && (( $(bc <<<"${PS2} < 1") )) && [[ "${PS2}" = *"."* ]] && PS2="0${PS2}" - HOST_AMPS=`echo "scale=1; ${PS1}+${PS2}" | bc` + [ "${PS1}" != "0.0" ] && PS1=`echo "scale=1; ${PS1}/10" | tr -d $'\r' | bc` && (( $(bc <<<"${PS1} < 1") )) && [[ "${PS1}" = *"."* ]] && PS1="0${PS1}" + [ "${PS2}" != "0.0" ] && PS2=`echo "scale=1; ${PS2}/10" | tr -d $'\r' | bc` && (( $(bc <<<"${PS2} < 1") )) && [[ "${PS2}" = *"."* ]] && PS2="0${PS2}" + HOST_AMPS=`echo "scale=1; ${PS1}+${PS2}" | tr -d $'\r' | bc` AD=$(IDS_NUMBER_FORMAT ${HOST_AMPS} 1 true); c=0; spc=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; ((c++)); done HOST_WATTS_disp="${idsCL[Green]}${AD}'A${spc}`IDS_NUMBER_FORMAT ${HOST_WATTS} 0`'W" @@ -710,17 +710,17 @@ CHECKPOWER(){ echo -e "${MSG}${idsCL[LightYellow]}${average_disp}${idsCL[Default]}" if [[ "${PW_HOST_IDRACS[${SENSOR}]}" = *"10.10."* ]]; then - AVERAGE_WATTS_MAINSITE=`echo "scale=2; ${AVERAGE_WATTS_MAINSITE}+${average_watt}" | bc` - AVERAGE_AMPS_MAINSITE=`echo "scale=2; ${AVERAGE_AMPS_MAINSITE}+${average_amp}" | bc` + AVERAGE_WATTS_MAINSITE=`echo "scale=2; ${AVERAGE_WATTS_MAINSITE}+${average_watt}" | tr -d $'\r' | bc` + AVERAGE_AMPS_MAINSITE=`echo "scale=2; ${AVERAGE_AMPS_MAINSITE}+${average_amp}" | tr -d $'\r' | bc` elif [[ "${PW_HOST_IDRACS[${SENSOR}]}" = *"10.2.1."* ]]; then - AVERAGE_WATTS_OFFSITE=`echo "scale=2; ${AVERAGE_WATTS_OFFSITE}+${average_watt}" | bc` - AVERAGE_AMPS_OFFSITE=`echo "scale=2; ${AVERAGE_AMPS_OFFSITE}+${average_amp}" | bc` + AVERAGE_WATTS_OFFSITE=`echo "scale=2; ${AVERAGE_WATTS_OFFSITE}+${average_watt}" | tr -d $'\r' | bc` + AVERAGE_AMPS_OFFSITE=`echo "scale=2; ${AVERAGE_AMPS_OFFSITE}+${average_amp}" | tr -d $'\r' | bc` elif [[ "${PW_HOST_IDRACS[${SENSOR}]}" = *"10.6."* ]]; then - AVERAGE_WATTS_KYLE=`echo "scale=2; ${AVERAGE_WATTS_KYLE}+${average_watt}" | bc` - AVERAGE_AMPS_KYLE=`echo "scale=2; ${AVERAGE_AMPS_KYLE}+${average_amp}" | bc` + AVERAGE_WATTS_KYLE=`echo "scale=2; ${AVERAGE_WATTS_KYLE}+${average_watt}" | tr -d $'\r' | bc` + AVERAGE_AMPS_KYLE=`echo "scale=2; ${AVERAGE_AMPS_KYLE}+${average_amp}" | tr -d $'\r' | bc` fi - AVERAGE_TOTAL_WATTS=`echo "scale=2; ${AVERAGE_TOTAL_WATTS}+${average_watt}" | bc` - AVERAGE_TOTAL_AMPS=`echo "scale=2; ${AVERAGE_TOTAL_AMPS}+${average_amp}" | bc` + AVERAGE_TOTAL_WATTS=`echo "scale=2; ${AVERAGE_TOTAL_WATTS}+${average_watt}" | tr -d $'\r' | bc` + AVERAGE_TOTAL_AMPS=`echo "scale=2; ${AVERAGE_TOTAL_AMPS}+${average_amp}" | tr -d $'\r' | bc` else echo -e "${idsCL[Default]}" @@ -737,17 +737,17 @@ CHECKPOWER(){ if [[ "${IP}" != "10.6.1"* ]]; then if [[ "${PW_HOST_IDRACS[${SENSOR}]}" = *"10.10."* ]]; then SENSOR_TOTAL_WATTS_MAINSITE=$(expr ${SENSOR_TOTAL_WATTS_MAINSITE} + ${HOST_WATTS}) - SENSOR_TOTAL_AMPS_MAINSITE=$(echo "scale=1; ${SENSOR_TOTAL_AMPS_MAINSITE}+${HOST_AMPS}" | bc) + SENSOR_TOTAL_AMPS_MAINSITE=$(echo "scale=1; ${SENSOR_TOTAL_AMPS_MAINSITE}+${HOST_AMPS}" | tr -d $'\r' | bc) elif [[ "${PW_HOST_IDRACS[${SENSOR}]}" = *"10.2.1."* ]]; then SENSOR_TOTAL_WATTS_OFFSITE=$(expr ${SENSOR_TOTAL_WATTS_OFFSITE} + ${HOST_WATTS}) - SENSOR_TOTAL_AMPS_OFFSITE=$(echo "scale=1; ${SENSOR_TOTAL_AMPS_OFFSITE}+${HOST_AMPS}" | bc) + SENSOR_TOTAL_AMPS_OFFSITE=$(echo "scale=1; ${SENSOR_TOTAL_AMPS_OFFSITE}+${HOST_AMPS}" | tr -d $'\r' | bc) elif [[ "${PW_HOST_IDRACS[${SENSOR}]}" = *"10.6."* ]]; then SENSOR_TOTAL_WATTS_KYLE=$(expr ${SENSOR_TOTAL_WATTS_KYLE} + ${HOST_WATTS}) - SENSOR_TOTAL_AMPS_KYLE=$(echo "scale=1; ${SENSOR_TOTAL_AMPS_KYLE}+${HOST_AMPS}" | bc) + SENSOR_TOTAL_AMPS_KYLE=$(echo "scale=1; ${SENSOR_TOTAL_AMPS_KYLE}+${HOST_AMPS}" | tr -d $'\r' | bc) fi fi SENSOR_TOTAL_WATTS=$(expr ${SENSOR_TOTAL_WATTS} + ${HOST_WATTS}) - SENSOR_TOTAL_AMPS=$(echo "scale=1; ${SENSOR_TOTAL_AMPS}+${HOST_AMPS}" | bc) + SENSOR_TOTAL_AMPS=$(echo "scale=1; ${SENSOR_TOTAL_AMPS}+${HOST_AMPS}" | tr -d $'\r' | bc) fi fi fi @@ -841,12 +841,12 @@ CHECKPOWER_SERVICE(){ ([ ${TESTMODE} -eq 1 ] && [ "${TEST_INPUTACV}" != "" ]) && INPUTACV=${TEST_INPUTACV} || INPUTACV=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.3.3.1.3.1 | sed 's/.*: //') ([ ${TESTMODE} -eq 1 ] && [ "${TEST_BATTVOLT}" != "" ]) && BATTVOLT=${TEST_BATTVOLT} || BATTVOLT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.2.5.0 | sed 's/.*: //') - BATTLIFE=`echo "scale=2; (${BATTVOLT}*100)/${BATT_FULL}" | bc` + BATTLIFE=`echo "scale=2; (${BATTVOLT}*100)/${BATT_FULL}" | tr -d $'\r' | bc` else ([ ${TESTMODE} -eq 1 ] && [ "${TEST_INPUTACV}" != "" ]) && INPUTACV=${TEST_INPUTACV} || INPUTACV=$(echo ${INVSTATSINFO} | jq '.inputs .inV') ([ ${TESTMODE} -eq 1 ] && [ "${TEST_BATTVOLT}" != "" ]) && BATTVOLT=${TEST_BATTVOLT} || BATTVOLT=$(echo ${INVSTATSINFO} | jq '.inputs .battV') BATTA=`echo ${INVSTATSINFO} | jq '.inputs .xfA'` - BATTLIFE=`echo "scale=2; (${BATTVOLT}*100)/${BATT_FULL}" | bc` + BATTLIFE=`echo "scale=2; (${BATTVOLT}*100)/${BATT_FULL}" | tr -d $'\r' | bc` fi PW_DISCHARGE=0 @@ -872,7 +872,7 @@ CHECKPOWER_SERVICE(){ GRID VOLTAGE: ${INPUTACV}'V BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE}`'% @ ${BATT_FULL}'V)" else - [ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge $(echo "scale=0; ${PW_LOG_INTERVAL_NORMAL}*60" | bc) ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V - Normal Voltage" >> ${PW_LOGPOWER} + [ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge $(echo "scale=0; ${PW_LOG_INTERVAL_NORMAL}*60" | tr -d $'\r' | bc) ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V - Normal Voltage" >> ${PW_LOGPOWER} if [ -f ${PW_TMPFOLDER}/power.ac.start ]; then SENDNOTICE "POWER Startup - Nominal" "Service Startup Normal voltage detected @@ -893,7 +893,7 @@ BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE rm -f ${PW_TMPFOLDER}/power.ac.* touch ${PW_TMPFOLDER}/power.ac.good - elif [ -f ${PW_TMPFOLDER}/.power.restored ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/.power.restored)) -ge $(echo "scale=0; ${PW_WAIT_TO_POWER_SERVERS}*60" | bc) ]; then + elif [ -f ${PW_TMPFOLDER}/.power.restored ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/.power.restored)) -ge $(echo "scale=0; ${PW_WAIT_TO_POWER_SERVERS}*60" | tr -d $'\r' | bc) ]; then HOSTMGMT mainsite -p on >/dev/null 2>&1 & rm -f ${PW_TMPFOLDER}/.power.restored fi @@ -926,7 +926,7 @@ BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE touch ${PW_TMPFOLDER}/power.ac.low fi - if [ "${PW_CONSERVE_HOSTS}" != "" ] && [ ! -f ${PW_TMPFOLDER}/power.ac.conserve ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.ac.low)) -ge $(echo "scale=0; ${PW_CONSERVE_AFTER}*60/1" | bc) ]; then + if [ "${PW_CONSERVE_HOSTS}" != "" ] && [ ! -f ${PW_TMPFOLDER}/power.ac.conserve ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.ac.low)) -ge $(echo "scale=0; ${PW_CONSERVE_AFTER}*60/1" | tr -d $'\r' | bc) ]; then echo -e "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'V / ${BATTVOLT}'V - Shutting down iSCSI VM's and Host to conserve power" >> ${PW_LOGPOWER} SENDNOTICE "POWER ALERT - Conserving Power" "Shutting down iSCSI VM's and Host to conserve power" 1 # SHUTDOWN_SERVER ${PW_MAIN_ISCSI} -esxi off & @@ -936,7 +936,7 @@ BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE fi if (( $(bc <<<"${BATTVOLT} >= ${min_battvolt}") )); then - [ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge $(echo "scale=0; ${PW_LOG_INTERVAL_NORMAL}*60" | bc) ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'V - Battery Voltage" >> ${PW_LOGPOWER} + [ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge $(echo "scale=0; ${PW_LOG_INTERVAL_NORMAL}*60" | tr -d $'\r' | bc) ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'V - Battery Voltage" >> ${PW_LOGPOWER} if [ -f ${PW_TMPFOLDER}/power.dc.start ]; then echo "($(date +'%Y-%m-%d %H:%M:%S')) - Battery: ${BATTVOLT}'V - Service Startup - Normal voltage detected" >> ${PW_LOGPOWER} rm -f ${PW_TMPFOLDER}/power.dc.start @@ -948,7 +948,7 @@ BATT VOLTAGE: `IDS_NUMBER_FORMAT ${BATTVOLT}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE else [ -f ${PW_TMPFOLDER}/power.dc.good ] && rm -f ${PW_TMPFOLDER}/power.dc.good - [ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge $(echo "scale=0; ${PW_LOG_INTERVAL_ABNORMAL}*60" | bc) ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'V - LOW BATTERY Voltage" >> ${PW_LOGPOWER} + [ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge $(echo "scale=0; ${PW_LOG_INTERVAL_ABNORMAL}*60" | tr -d $'\r' | bc) ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'V - LOW BATTERY Voltage" >> ${PW_LOGPOWER} if (( $(bc <<<"${BATTVOLT} <= ${min_battvolt_sys}") )); then [ ! -f ${PW_TMPFOLDER}/power.dc.critlow ] && touch ${PW_TMPFOLDER}/power.dc.critlow @@ -975,7 +975,7 @@ Shutting down main servers" 1 fi - elif [ ! -f ${PW_TMPFOLDER}/shutdown.MAIN.started ] && [ ! -f ${PW_TMPFOLDER}/shutdown.MAINSITE.started ] && [ ! -f ${PW_TMPFOLDER}/shutdown.ALL.started ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.ac.low)) -ge $(echo "scale=0; ${PW_SHUTDOWN_MAINSERVERS_AFTER}*60" | bc) ]; then + elif [ ! -f ${PW_TMPFOLDER}/shutdown.MAIN.started ] && [ ! -f ${PW_TMPFOLDER}/shutdown.MAINSITE.started ] && [ ! -f ${PW_TMPFOLDER}/shutdown.ALL.started ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.ac.low)) -ge $(echo "scale=0; ${PW_SHUTDOWN_MAINSERVERS_AFTER}*60" | tr -d $'\r' | bc) ]; then echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'V - Shutting down main servers..." >> ${PW_LOGFILE} echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'V - Shutting down main servers..." >> ${PW_LOGPOWER} SENDNOTICE "BATT-VOLT LOW: SHUTDOWN MAIN SERVERS" "Battery Voltage LOW: ${BATTVOLT}'V @@ -985,8 +985,8 @@ Shutting down main servers" 1 fi if [ -f ${PW_TMPFOLDER}/power.ac.low ] || [ -f ${PW_TMPFOLDER}/power.dc.low ]; then - volt_diff=`echo "scale=1; ${last_battvolt}-${BATTVOLT}" | bc` - (( $(bc <<<"${volt_diff} < 0") )) && volt_diff=`echo "scale=2; ${volt_diff} * -1" | bc` + volt_diff=`echo "scale=1; ${last_battvolt}-${BATTVOLT}" | tr -d $'\r' | bc` + (( $(bc <<<"${volt_diff} < 0") )) && volt_diff=`echo "scale=2; ${volt_diff} * -1" | tr -d $'\r' | bc` if (( $(bc <<<"${volt_diff} >= 0.5") )); then SENDNOTICE "BATTERY VOLTAGE CHANGE" "Battery Voltage: ${BATTVOLT}'V" echo -e "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'V - Battery Voltage Change" >> ${PW_LOGPOWER} @@ -1032,16 +1032,16 @@ OFFSITE_CHECKPOWER_SERVICE(){ rm -f ${PW_TMPFOLDER}/power.offsite.ups.losscomm OFFSITE_VOLTIN=$(echo "${upsinfo}" | grep 'input.voltage:' | sed 's/.*: //') OFFSITE_LOAD=$(echo "${upsinfo}" | grep 'ups.load:' | sed 's/.*: //') - OFFSITE_LOAD=`echo "scale=2; ${OFFSITE_LOAD}/100" | bc` - OFFSITE_WATTS=`echo "scale=2; ${OFFSITE_LOAD}*$(echo "${upsinfo}" | grep 'ups.realpower.nominal:' | sed 's/.*: //')" | bc` + OFFSITE_LOAD=`echo "scale=2; ${OFFSITE_LOAD}/100" | tr -d $'\r' | bc` + OFFSITE_WATTS=`echo "scale=2; ${OFFSITE_LOAD}*$(echo "${upsinfo}" | grep 'ups.realpower.nominal:' | sed 's/.*: //')" | tr -d $'\r' | bc` OFFSITE_BATT_RUNTIME=$(echo "${upsinfo}" | grep 'battery.runtime:' | sed 's/.*: //') - OFFSITE_BATT_RUNTIME=`echo "scale=2; ${OFFSITE_BATT_RUNTIME}/60" | bc` + OFFSITE_BATT_RUNTIME=`echo "scale=2; ${OFFSITE_BATT_RUNTIME}/60" | tr -d $'\r' | bc` OFFSITE_BATT_CAP=$(echo "${upsinfo}" | grep 'battery.charge:' | sed 's/.*: //') if (( $(bc <<<"${OFFSITE_WATTS} < 100") )); then TOTAL_MISC_WATTS=0 for mSENSOR in "${PW_POWERSENSOR_MISC[@]}"; do - TOTAL_MISC_WATTS=`echo "scale=2; ${TOTAL_MISC_WATTS}+$(GET_TUYA_POWER ${mSENSOR})" | bc` + TOTAL_MISC_WATTS=`echo "scale=2; ${TOTAL_MISC_WATTS}+$(GET_TUYA_POWER ${mSENSOR})" | tr -d $'\r' | bc` done (( $(bc <<<"${OFFSITE_WATTS} < ${TOTAL_MISC_WATTS}") )) && OFFSITE_WATTS=${TOTAL_MISC_WATTS} fi @@ -1113,7 +1113,7 @@ AMBIENT TEMP: ${OFFSITE_TEMP}'F" rm -f ${PW_TMPFOLDER}/power.offsite.ac.* fi if [ -f ${PW_TMPFOLDER}/shutdown.OFFSITE ]; then - if [ -f ${PW_TMPFOLDER}/power.offsite.restored ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.offsite.restored)) -gt $(echo "scale=2; ${PW_OFFSITE_WAIT_TO_POWER_SERVERS}*60" | bc) ]; then + if [ -f ${PW_TMPFOLDER}/power.offsite.restored ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.offsite.restored)) -gt $(echo "scale=2; ${PW_OFFSITE_WAIT_TO_POWER_SERVERS}*60" | tr -d $'\r' | bc) ]; then if [ "$(CHECK_HOST ${PW_IP})" != "false" ]; then echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'V - ${OFFSITE_BATT_CAP}'% Battery - Powering Hosts ON After Power Outage" >> ${PW_LOGFILE} if [ -f ${PW_TMPFOLDER}/power.offsite.nohomeconn ]; then @@ -1134,7 +1134,7 @@ AMBIENT TEMP: ${OFFSITE_TEMP}'F" echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'V - ${OFFSITE_BATT_CAP}'% Battery - Will wait to power on offsite host(s) until powerwall connection is regained" >> ${PW_LOGFILE} touch ${PW_TMPFOLDER}/power.offsite.nohomeconn SENDNOTICE2 "OFFSITE HOST POWER" "Will wait to power on offsite host(s) until powerwall connection is regained" - elif [ -f ${PW_TMPFOLDER}/power.offsite.nohomeconn ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.offsite.nohomeconn)) -gt $(echo "scale=2; ${PW_OFFSITE_WAIT_TO_POWER_SERVERS}*60" | bc) ]; then + elif [ -f ${PW_TMPFOLDER}/power.offsite.nohomeconn ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.offsite.nohomeconn)) -gt $(echo "scale=2; ${PW_OFFSITE_WAIT_TO_POWER_SERVERS}*60" | tr -d $'\r' | bc) ]; then touch ${PW_TMPFOLDER}/power.offsite.nohomeconn SENDNOTICE2 "OFFSITE HOST POWER" "Still waiting for connection to powerwall before powering offsite host(s) back on" fi @@ -1142,19 +1142,19 @@ AMBIENT TEMP: ${OFFSITE_TEMP}'F" fi fi logtime=$(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) - if [ ${logtime} -ge $(echo "scale=0; ${PW_LOG_INTERVAL_NORMAL}*60" | bc) ] || ([ ${OFFSITE_BATT_CAP%.*} -lt 100 ] && [ ${logtime} -gt ${PW_LOG_INTERVAL_CHARGING} ]); then + if [ ${logtime} -ge $(echo "scale=0; ${PW_LOG_INTERVAL_NORMAL}*60" | tr -d $'\r' | bc) ] || ([ ${OFFSITE_BATT_CAP%.*} -lt 100 ] && [ ${logtime} -gt ${PW_LOG_INTERVAL_CHARGING} ]); then echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'V - ${OFFSITE_WATTS}'W - ${OFFSITE_BATT_CAP}'% Battery - ${OFFSITE_BATT_RUNTIME}'mins - Normal" >> ${PW_LOGPOWER} fi else [ ! -f ${PW_TMPFOLDER}/power.offsite.ac.low ] && touch ${PW_TMPFOLDER}/power.offsite.ac.low - if [ ! -f ${PW_TMPFOLDER}/power.offsite.ac.low.notice ] || [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.offsite.ac.low.notice)) -gt $(echo "scale=2; ${PW_RENOTIFY_LOWPOWER}*60" | bc) ]; then + if [ ! -f ${PW_TMPFOLDER}/power.offsite.ac.low.notice ] || [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.offsite.ac.low.notice)) -gt $(echo "scale=2; ${PW_RENOTIFY_LOWPOWER}*60" | tr -d $'\r' | bc) ]; then # echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'V - ${OFFSITE_BATT_CAP}'% Battery - Powering LOW/OFF!" >> ${PW_LOGFILE} SENDNOTICE2 "OFFSITE POWER - POWER OFF/LOW!!" "Power off or low voltage detected" 1 touch ${PW_TMPFOLDER}/power.offsite.ac.low.notice fi - if [ ! -f ${PW_TMPFOLDER}/shutdown.OFFSITE ] && [ ${OFFSITE_WATTS%.*} -gt 100 ] && ([ ${OFFSITE_BATT_CAP%.*} -le ${PW_OFFSITE_SHUTDOWNSERVERS_AT_BATTCAP} ] || [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.offsite.ac.low)) -ge $(echo "scale=2; ${PW_OFFSITE_SHUTDOWNSERVERS_AFTER}*60" | bc) ]); then + if [ ! -f ${PW_TMPFOLDER}/shutdown.OFFSITE ] && [ ${OFFSITE_WATTS%.*} -gt 100 ] && ([ ${OFFSITE_BATT_CAP%.*} -le ${PW_OFFSITE_SHUTDOWNSERVERS_AT_BATTCAP} ] || [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.offsite.ac.low)) -ge $(echo "scale=2; ${PW_OFFSITE_SHUTDOWNSERVERS_AFTER}*60" | tr -d $'\r' | bc) ]); then echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'V - ${OFFSITE_BATT_CAP}'% Battery - Powering Down Hosts!" >> ${PW_LOGFILE} SENDNOTICE2 "OFFSITE HOST POWER" "Powering DOWN offsite host(s) due to power outage" 1 touch ${PW_TMPFOLDER}/shutdown.OFFSITE @@ -1228,10 +1228,10 @@ POWERLOGGER_SERVICE(){ if [ "$(CHECK_HOST ${PW_UPS_IP})" != "false" ]; then SVRRM_VOLT=$(snmpwalk -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.3.2.1.2.1.1 | sed 's/.*: //') - SVRRM_VOLT=`echo "scale=1; ${SVRRM_VOLT}/10" | bc` + SVRRM_VOLT=`echo "scale=1; ${SVRRM_VOLT}/10" | tr -d $'\r' | bc` SVRRM_WATT=$(snmpwalk -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.3.2.1.4.1.1 | sed 's/.*: //') SVRRM_AMP=$(snmpwalk -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.3.2.1.3.1.1 | sed 's/.*: //') - SVRRM_AMP=`echo "scale=2; ${SVRRM_AMP}/100" | bc` + SVRRM_AMP=`echo "scale=2; ${SVRRM_AMP}/100" | tr -d $'\r' | bc` QRY="INSERT INTO power_data (sensorid, date, volt, amp, watt) VALUES ('${PW_POWERSENSOR_ID['total']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${SVRRM_VOLT}','${SVRRM_AMP}','${SVRRM_WATT}')" ${mysql_conn} -e "USE servermonitor; ${QRY}" ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), watt = '${SVRRM_WATT}' WHERE sensorid='${PW_POWERSENSOR_ID['total']}'" @@ -1239,9 +1239,9 @@ POWERLOGGER_SERVICE(){ if [ "$(CHECK_HOST ${PW_APCPDU_IP})" != "false" ]; then APCPDU_AMP=$(snmpwalk -v 1 -c public ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.1 | sed 's/.*: //') - APCPDU_AMP=`echo "scale=1; ${APCPDU_AMP}/10" | bc` + APCPDU_AMP=`echo "scale=1; ${APCPDU_AMP}/10" | tr -d $'\r' | bc` if [ "${SVRRM_VOLT}" != "" ]; then - APCPDU_WATT=`echo "scale=2; ${APCPDU_AMP}*${SVRRM_VOLT}" | bc` + APCPDU_WATT=`echo "scale=2; ${APCPDU_AMP}*${SVRRM_VOLT}" | tr -d $'\r' | bc` QRY="INSERT INTO power_data (sensorid, date, volt, amp, watt) VALUES ('${PW_POWERSENSOR_ID['server-rack']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${SVRRM_VOLT}','${APCPDU_AMP}','${APCPDU_WATT}')" ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), watt = '${APCPDU_WATT}' WHERE sensorid='${PW_POWERSENSOR_ID['server-rack']}'" else @@ -1251,8 +1251,8 @@ POWERLOGGER_SERVICE(){ fi if [ "${SVRRM_VOLT}" != "" ] && [ "${APCPDU_AMP}" != "" ]; then - NETRK_AMP=`echo "scale=2; ${SVRRM_AMP}-${APCPDU_AMP}" | bc` - NETRK_WATT=$(ROUND_NUMBER `echo "scale=2; ${SVRRM_WATT}-${APCPDU_WATT}" | bc` 0) + NETRK_AMP=`echo "scale=2; ${SVRRM_AMP}-${APCPDU_AMP}" | tr -d $'\r' | bc` + NETRK_WATT=$(ROUND_NUMBER `echo "scale=2; ${SVRRM_WATT}-${APCPDU_WATT}" | tr -d $'\r' | bc` 0) QRY="INSERT INTO power_data (sensorid, date, volt, amp, watt) VALUES ('${PW_POWERSENSOR_ID['network-rack']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${SVRRM_VOLT}','${NETRK_AMP}','${NETRK_WATT}')" ${mysql_conn} -e "USE servermonitor; ${QRY}" @@ -1262,11 +1262,11 @@ POWERLOGGER_SERVICE(){ AIRCON_INFO=$(curl -m 3 -s http://${PW_REMOTE_SENSORS['ServerRoom-AC']}:8888/status/${PW_SENSOR_DEVICEID['ServerRoom-AC']} | jq '.dps') if [ "${AIRCON_INFO}" != "" ]; then AIRCON_AMP=$(echo "${AIRCON_INFO}" | grep '"18":' | cut -d' ' -f 4 | sed 's/,//g') - AIRCON_AMP=$(ROUND_NUMBER $(echo "scale=3; ${AIRCON_AMP}/1000" | bc -l) 2) + AIRCON_AMP=$(ROUND_NUMBER $(echo "scale=3; ${AIRCON_AMP}/1000" | tr -d $'\r' | bc -l) 2) AIRCON_WATT=$(echo "${AIRCON_INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') - AIRCON_WATT=$(echo "scale=1; ${AIRCON_WATT}/10" | bc -l) + AIRCON_WATT=$(echo "scale=1; ${AIRCON_WATT}/10" | tr -d $'\r' | bc -l) AIRCON_VOLT=$(echo "${AIRCON_INFO}" | grep '"20":' | cut -d' ' -f 4 | sed 's/,//g') - AIRCON_VOLT=$(echo "scale=3; ${AIRCON_VOLT}/10" | bc -l) + AIRCON_VOLT=$(echo "scale=3; ${AIRCON_VOLT}/10" | tr -d $'\r' | bc -l) QRY="INSERT INTO power_data (sensorid, date, volt, amp, watt) VALUES ('${PW_POWERSENSOR_ID['ServerRoom-AC']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${AIRCON_VOLT}','${AIRCON_AMP}','${AIRCON_WATT}')" ${mysql_conn} -e "USE servermonitor; ${QRY}" @@ -1278,8 +1278,8 @@ POWERLOGGER_SERVICE(){ fi if [ "${SVRRM_WATT}" != "" ]; then - SVRRM_AMP_WAC=$(echo "scale=2; ${SVRRM_AMP}+${AIRCON_AMP}" | bc -l) - SVRRM_WATT_WAC=$(echo "scale=2; ${SVRRM_WATT}+${AIRCON_WATT}" | bc -l) + SVRRM_AMP_WAC=$(echo "scale=2; ${SVRRM_AMP}+${AIRCON_AMP}" | tr -d $'\r' | bc -l) + SVRRM_WATT_WAC=$(echo "scale=2; ${SVRRM_WATT}+${AIRCON_WATT}" | tr -d $'\r' | bc -l) QRY="INSERT INTO power_data (sensorid, date, amp, watt) VALUES ('${PW_POWERSENSOR_ID['total-wac']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${SVRRM_AMP_WAC}','${SVRRM_WATT_WAC}')" ${mysql_conn} -e "USE servermonitor; ${QRY}" ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), watt = '${SVRRM_WATT_WAC}' WHERE sensorid='${PW_POWERSENSOR_ID['total-wac']}'" @@ -1289,11 +1289,11 @@ POWERLOGGER_SERVICE(){ KYLE_INFO=$(curl -m 3 -s http://${PW_REMOTE_SENSORS['KP-Power']}:8888/status/${PW_SENSOR_DEVICEID['KP-Power']} | jq '.dps') if [ "${KYLE_INFO}" != "" ]; then KYLE_AMP=$(echo "${KYLE_INFO}" | grep '"18":' | cut -d' ' -f 4 | sed 's/,//g') - KYLE_AMP=$(ROUND_NUMBER $(echo "scale=3; ${KYLE_AMP}/1000" | bc -l) 2) + KYLE_AMP=$(ROUND_NUMBER $(echo "scale=3; ${KYLE_AMP}/1000" | tr -d $'\r' | bc -l) 2) KYLE_WATT=$(echo "${KYLE_INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') - KYLE_WATT=$(echo "scale=1; ${KYLE_WATT}/10" | bc -l) + KYLE_WATT=$(echo "scale=1; ${KYLE_WATT}/10" | tr -d $'\r' | bc -l) KYLE_VOLT=$(echo "${KYLE_INFO}" | grep '"20":' | cut -d' ' -f 4 | sed 's/,//g') - KYLE_VOLT=$(echo "scale=3; ${KYLE_VOLT}/10" | bc -l) + KYLE_VOLT=$(echo "scale=3; ${KYLE_VOLT}/10" | tr -d $'\r' | bc -l) QRY="INSERT INTO power_data (sensorid, date, volt, amp, watt) VALUES ('${PW_POWERSENSOR_ID['KP-Power']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${KYLE_VOLT}','${KYLE_AMP}','${KYLE_WATT}')" ${mysql_conn} -e "USE servermonitor; ${QRY}" @@ -1306,11 +1306,11 @@ POWERLOGGER_SERVICE(){ KYLE_INFO=$(curl -m 3 -s http://${PW_REMOTE_SENSORS['KP-SAS']}:8888/status/${PW_SENSOR_DEVICEID['KP-SAS']} | jq '.dps') if [ "${KYLE_INFO}" != "" ]; then KYLE_AMP=$(echo "${KYLE_INFO}" | grep '"18":' | cut -d' ' -f 4 | sed 's/,//g') - KYLE_AMP=$(ROUND_NUMBER $(echo "scale=3; ${KYLE_AMP}/1000" | bc -l) 2) + KYLE_AMP=$(ROUND_NUMBER $(echo "scale=3; ${KYLE_AMP}/1000" | tr -d $'\r' | bc -l) 2) KYLE_WATT=$(echo "${KYLE_INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') - KYLE_WATT=$(echo "scale=1; ${KYLE_WATT}/10" | bc -l) + KYLE_WATT=$(echo "scale=1; ${KYLE_WATT}/10" | tr -d $'\r' | bc -l) KYLE_VOLT=$(echo "${KYLE_INFO}" | grep '"20":' | cut -d' ' -f 4 | sed 's/,//g') - KYLE_VOLT=$(echo "scale=3; ${KYLE_VOLT}/10" | bc -l) + KYLE_VOLT=$(echo "scale=3; ${KYLE_VOLT}/10" | tr -d $'\r' | bc -l) QRY="INSERT INTO power_data (sensorid, date, volt, amp, watt) VALUES ('${PW_POWERSENSOR_ID['KP-SAS']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${KYLE_VOLT}','${KYLE_AMP}','${KYLE_WATT}')" ${mysql_conn} -e "USE servermonitor; ${QRY}" @@ -1325,16 +1325,16 @@ POWERLOGGER_SERVICE(){ if [ "$(echo "${upsinfo}" | grep 'input.voltage:')" != "" ]; then OFFSITE_VOLTOUT=$(echo "${upsinfo}" | grep 'output.voltage:' | sed 's/.*: //') OFFSITE_LOAD=$(echo "${upsinfo}" | grep 'ups.load:' | sed 's/.*: //') - OFFSITE_LOAD=`echo "scale=2; ${OFFSITE_LOAD}/100" | bc` - OFFSITE_WATTS=`echo "scale=2; ${OFFSITE_LOAD}*$(echo "${upsinfo}" | grep 'ups.realpower.nominal:' | sed 's/.*: //')" | bc` - OFFSITE_AMPS=`echo "scale=2; ${OFFSITE_WATTS}/${OFFSITE_VOLTOUT}" | bc` + OFFSITE_LOAD=`echo "scale=2; ${OFFSITE_LOAD}/100" | tr -d $'\r' | bc` + OFFSITE_WATTS=`echo "scale=2; ${OFFSITE_LOAD}*$(echo "${upsinfo}" | grep 'ups.realpower.nominal:' | sed 's/.*: //')" | tr -d $'\r' | bc` + OFFSITE_AMPS=`echo "scale=2; ${OFFSITE_WATTS}/${OFFSITE_VOLTOUT}" | tr -d $'\r' | bc` if (( $(bc <<<"${OFFSITE_WATTS} < 100") )); then TOTAL_MISC_WATTS=0; TOTAL_MISC_AMPS=0 for mSENSOR in "${PW_POWERSENSOR_MISC[@]}"; do IFS=: read -r AMP WATT VOLT <<< $(GET_TUYA_POWER ${mSENSOR}); unset IFS - TOTAL_MISC_WATTS=`echo "scale=2; ${TOTAL_MISC_WATTS}+${WATT}" | bc` - TOTAL_MISC_AMPS=`echo "scale=2; ${TOTAL_MISC_AMPS}+${AMP}" | bc` + TOTAL_MISC_WATTS=`echo "scale=2; ${TOTAL_MISC_WATTS}+${WATT}" | tr -d $'\r' | bc` + TOTAL_MISC_AMPS=`echo "scale=2; ${TOTAL_MISC_AMPS}+${AMP}" | tr -d $'\r' | bc` done if (( $(bc <<<"${OFFSITE_WATTS} < ${TOTAL_MISC_WATTS}") )); then OFFSITE_WATTS=${TOTAL_MISC_WATTS} @@ -1386,9 +1386,9 @@ POWERLOGGER_SERVICE(){ fi done if [ ${found} -eq 1 ] && [ "${HOST_WATTS}" != "0" ] && [ "${HOST_WATTS}" != "" ] && [[ "${HOST_WATTS}" != *"Timeout"* ]]; then - [ "${PS1}" != "0.0" ] && PS1=`echo "scale=1; ${PS1}/10" | bc` && (( $(bc <<<"${PS1} < 1") )) && [[ "${PS1}" = *"."* ]] && PS1="0${PS1}" - [ "${PS2}" != "0.0" ] && PS2=`echo "scale=1; ${PS2}/10" | bc` && (( $(bc <<<"${PS2} < 1") )) && [[ "${PS2}" = *"."* ]] && PS2="0${PS2}" - HOST_AMPS=`echo "scale=1; ${PS1}+${PS2}" | bc` + [ "${PS1}" != "0.0" ] && PS1=`echo "scale=1; ${PS1}/10" | tr -d $'\r' | bc` && (( $(bc <<<"${PS1} < 1") )) && [[ "${PS1}" = *"."* ]] && PS1="0${PS1}" + [ "${PS2}" != "0.0" ] && PS2=`echo "scale=1; ${PS2}/10" | tr -d $'\r' | bc` && (( $(bc <<<"${PS2} < 1") )) && [[ "${PS2}" = *"."* ]] && PS2="0${PS2}" + HOST_AMPS=`echo "scale=1; ${PS1}+${PS2}" | tr -d $'\r' | bc` QRY="INSERT INTO power_data (sensorid, date, amp, watt) VALUES ('${PW_POWERSENSOR_ID[${SENSOR}]}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${HOST_AMPS}','${HOST_WATTS}')" ${mysql_conn} -e "USE servermonitor; ${QRY}" fi @@ -1403,11 +1403,11 @@ POWERLOGGER_SERVICE(){ # UPS_VOLTIN=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.3.3.1.3.1 | sed 's/.*: //') # UPS_VOLTOUT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.4.4.1.2.1 | sed 's/.*: //') # UPS_LOAD=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.2.2.1.11.3 | sed 's/.*: //') - # UPS_LOAD=`echo "scale=2; ${UPS_LOAD}/10" | bc` + # UPS_LOAD=`echo "scale=2; ${UPS_LOAD}/10" | tr -d $'\r' | bc` # UPS_AMPSIN=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.2.1.33.1.3.3.1.4.1 | sed 's/.*: //')\ - # UPS_AMPSIN=`echo "scale=2; ${UPS_AMPSIN}/10" | bc` + # UPS_AMPSIN=`echo "scale=2; ${UPS_AMPSIN}/10" | tr -d $'\r' | bc` # UPS_AMPSOUT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.2.1.33.1.4.4.1.3.1 | sed 's/.*: //')\ - # UPS_AMPSOUT=`echo "scale=2; ${UPS_AMPSOUT}/10" | bc` + # UPS_AMPSOUT=`echo "scale=2; ${UPS_AMPSOUT}/10" | tr -d $'\r' | bc` # UPS_WATTS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.2.2.1.8.3 | sed 's/.*: //') # UPS_BATT_RUNTIME=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.1.18.0 | sed 's/.*: //') # UPS_BATT_VOLT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.1.10.0 | sed 's/.*: //') @@ -1418,14 +1418,14 @@ POWERLOGGER_SERVICE(){ UPS_VOLTOUT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.4.4.1.2.1 | sed 's/.*: //') UPS_LOAD=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.4.4.1.5.1 | sed 's/.*: //') UPS_AMPSIN=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.2.1.33.1.3.3.1.4.1 | sed 's/.*: //')\ - #UPS_AMPSIN=`echo "scale=2; ${UPS_AMPSIN}/10" | bc` + #UPS_AMPSIN=`echo "scale=2; ${UPS_AMPSIN}/10" | tr -d $'\r' | bc` UPS_AMPSOUT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.2.1.33.1.4.4.1.3.1 | sed 's/.*: //')\ - UPS_AMPSOUT=`echo "scale=2; ${UPS_AMPSOUT}/10" | bc` + UPS_AMPSOUT=`echo "scale=2; ${UPS_AMPSOUT}/10" | tr -d $'\r' | bc` # UPS_WATTS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.2.1.33.1.4.4.1.4.1 | sed 's/.*: //') - UPS_WATTS=`echo "scale=2; ${UPS_VOLTOUT}*${UPS_AMPSOUT}" | bc` + UPS_WATTS=`echo "scale=2; ${UPS_VOLTOUT}*${UPS_AMPSOUT}" | tr -d $'\r' | bc` UPS_BATT_RUNTIME=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.2.3.0 | sed 's/.*: //') UPS_BATT_VOLT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.2.5.0 | sed 's/.*: //') - UPS_BATT_VOLT=`echo "scale=2; ${UPS_BATT_VOLT}/10" | bc` + UPS_BATT_VOLT=`echo "scale=2; ${UPS_BATT_VOLT}/10" | tr -d $'\r' | bc` UPS_BATT_CAP=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.2.4.0 | sed 's/.*: //') QRY="INSERT INTO power_data (sensorid, date, volt, amp) VALUES ('${PW_POWERSENSOR_ID['ups-input']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${UPS_VOLTIN}','${UPS_AMPSIN}')" @@ -1477,9 +1477,9 @@ POWERLOGGER_SERVICE(){ fi done if [ ${found} -eq 1 ] && [ "${HOST_WATTS}" != "0" ] && [ "${HOST_WATTS}" != "" ] && [[ "${HOST_WATTS}" != *"Timeout"* ]]; then - [ "${PS1}" != "0.0" ] && PS1=`echo "scale=1; ${PS1}/10" | bc` && (( $(bc <<<"${PS1} < 1") )) && [[ "${PS1}" = *"."* ]] && PS1="0${PS1}" - [ "${PS2}" != "0.0" ] && PS2=`echo "scale=1; ${PS2}/10" | bc` && (( $(bc <<<"${PS2} < 1") )) && [[ "${PS2}" = *"."* ]] && PS2="0${PS2}" - HOST_AMPS=`echo "scale=1; ${PS1}+${PS2}" | bc` + [ "${PS1}" != "0.0" ] && PS1=`echo "scale=1; ${PS1}/10" | tr -d $'\r' | bc` && (( $(bc <<<"${PS1} < 1") )) && [[ "${PS1}" = *"."* ]] && PS1="0${PS1}" + [ "${PS2}" != "0.0" ] && PS2=`echo "scale=1; ${PS2}/10" | tr -d $'\r' | bc` && (( $(bc <<<"${PS2} < 1") )) && [[ "${PS2}" = *"."* ]] && PS2="0${PS2}" + HOST_AMPS=`echo "scale=1; ${PS1}+${PS2}" | tr -d $'\r' | bc` QRY="INSERT INTO power_data (sensorid, date, amp, watt) VALUES ('${PW_POWERSENSOR_ID[${SENSOR}]}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${HOST_AMPS}','${HOST_WATTS}')" ${mysql_conn} -e "USE servermonitor; ${QRY}" fi @@ -1680,18 +1680,18 @@ GET_TUYA_POWER(){ WATT=-1 if [ "$(echo "${INFO}" | grep '"18":')" != "" ]; then AMP=$(echo "${INFO}" | grep '"18":' | cut -d' ' -f 4 | sed 's/,//g') - AMP=$(ROUND_NUMBER $(echo "scale=3; ${AMP}/1000" | bc -l) 2) + AMP=$(ROUND_NUMBER $(echo "scale=3; ${AMP}/1000" | tr -d $'\r' | bc -l) 2) WATT=$(echo "${INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') - WATT=$(echo "scale=1; ${WATT}/10" | bc -l) + WATT=$(echo "scale=1; ${WATT}/10" | tr -d $'\r' | bc -l) VOLT=$(echo "${INFO}" | grep '"20":' | cut -d' ' -f 4 | sed 's/,//g') - VOLT=$(echo "scale=1; ${VOLT}/10" | bc -l) + VOLT=$(echo "scale=1; ${VOLT}/10" | tr -d $'\r' | bc -l) elif [ "$(echo "${INFO}" | grep '"6":')" != "" ]; then AMP=$(echo "${INFO}" | grep '"4":' | cut -d' ' -f 4 | sed 's/,//g') - AMP=$(ROUND_NUMBER $(echo "scale=3; ${AMP}/1000" | bc -l) 2) + AMP=$(ROUND_NUMBER $(echo "scale=3; ${AMP}/1000" | tr -d $'\r' | bc -l) 2) WATT=$(echo "${INFO}" | grep '"5":' | cut -d' ' -f 4 | sed 's/,//g') - WATT=$(echo "scale=1; ${WATT}/10" | bc -l) + WATT=$(echo "scale=1; ${WATT}/10" | tr -d $'\r' | bc -l) VOLT=$(echo "${INFO}" | grep '"6":' | cut -d' ' -f 4 | sed 's/,//g') - VOLT=$(echo "scale=1; ${VOLT}/10" | bc -l) + VOLT=$(echo "scale=1; ${VOLT}/10" | tr -d $'\r' | bc -l) fi [ "${WATT}" != "-1" ] && echo "${AMP}:${WATT}:${VOLT}" || echo "0:0:0" fi