diff --git a/inc/power.inc.sh b/inc/power.inc.sh index ee58d5a1..1635c74b 100644 --- a/inc/power.inc.sh +++ b/inc/power.inc.sh @@ -1143,205 +1143,285 @@ POWERLOGGER_SERVICE(){ LogDataTime=`date +'%Y-%m-%d %H:%M:%S'` source ${PW_FOLDER}/defaults.inc - INVSTATSINFO=$(curl -m 3 -s "http://${PW_INVERTER_IP}/stats.json") - if [ "${INVSTATSINFO}" != "" ]; then - INPUTV=`echo ${INVSTATSINFO} | jq '.inputs .inV'` - INPUTA=`echo ${INVSTATSINFO} | jq '.inputs .inA'` - OUTPUTV=`echo ${INVSTATSINFO} | jq '.outputs .outV'` - OUTPUTA=`echo ${INVSTATSINFO} | jq '.outputs .outA'` - OUTPUTW=`echo ${INVSTATSINFO} | jq '.outputs .outW'` - BATTV=`echo ${INVSTATSINFO} | jq '.inputs .battV'` - BATTA=`echo ${INVSTATSINFO} | jq '.inputs .xfA'` + if [[ "${IP}" != "10.6.1"* ]]; then + + INVSTATSINFO=$(curl -m 3 -s "http://${PW_INVERTER_IP}/stats.json") + if [ "${INVSTATSINFO}" != "" ]; then + INPUTV=`echo ${INVSTATSINFO} | jq '.inputs .inV'` + INPUTA=`echo ${INVSTATSINFO} | jq '.inputs .inA'` + OUTPUTV=`echo ${INVSTATSINFO} | jq '.outputs .outV'` + OUTPUTA=`echo ${INVSTATSINFO} | jq '.outputs .outA'` + OUTPUTW=`echo ${INVSTATSINFO} | jq '.outputs .outW'` + BATTV=`echo ${INVSTATSINFO} | jq '.inputs .battV'` + BATTA=`echo ${INVSTATSINFO} | jq '.inputs .xfA'` - QRY="INSERT INTO power_data (sensorid, date, volt, amp) VALUES ('${PW_POWERSENSOR_ID['inv-in']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${INPUTV}','${INPUTA}')" - ${mysql_conn} -e "USE servermonitor; ${QRY}" - QRY="INSERT INTO power_data (sensorid, date, volt, amp, watt) VALUES ('${PW_POWERSENSOR_ID['inv-out']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${OUTPUTV}','${OUTPUTA}','${OUTPUTW}')" - ${mysql_conn} -e "USE servermonitor; ${QRY}" - QRY="INSERT INTO power_data (sensorid, date, volt, amp) VALUES ('${PW_POWERSENSOR_ID['battery']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${BATTV}','${BATTA}')" - ${mysql_conn} -e "USE servermonitor; ${QRY}" + QRY="INSERT INTO power_data (sensorid, date, volt, amp) VALUES ('${PW_POWERSENSOR_ID['inv-in']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${INPUTV}','${INPUTA}')" + ${mysql_conn} -e "USE servermonitor; ${QRY}" + QRY="INSERT INTO power_data (sensorid, date, volt, amp, watt) VALUES ('${PW_POWERSENSOR_ID['inv-out']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${OUTPUTV}','${OUTPUTA}','${OUTPUTW}')" + ${mysql_conn} -e "USE servermonitor; ${QRY}" + QRY="INSERT INTO power_data (sensorid, date, volt, amp) VALUES ('${PW_POWERSENSOR_ID['battery']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${BATTV}','${BATTA}')" + ${mysql_conn} -e "USE servermonitor; ${QRY}" - ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), volt = '${INPUTV}', amp = '${INPUTA}' WHERE sensorid='${PW_POWERSENSOR_ID['inv-in']}'" - ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), volt = '${OUTPUTV}', amp = '${OUTPUTA}' WHERE sensorid='${PW_POWERSENSOR_ID['inv-out']}'" - ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), volt = '${BATTV}', amp = '${BATTA}' WHERE sensorid='${PW_POWERSENSOR_ID['battery']}'" + ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), volt = '${INPUTV}', amp = '${INPUTA}' WHERE sensorid='${PW_POWERSENSOR_ID['inv-in']}'" + ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), volt = '${OUTPUTV}', amp = '${OUTPUTA}' WHERE sensorid='${PW_POWERSENSOR_ID['inv-out']}'" + ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), volt = '${BATTV}', amp = '${BATTA}' WHERE sensorid='${PW_POWERSENSOR_ID['battery']}'" - QRY="INSERT INTO inv_jsonstats (date, data) VALUES (CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${INVSTATSINFO}')" - ${mysql_conn} -e "USE servermonitor; ${QRY}" - fi - - 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_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` - 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']}'" - fi - - 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` - if [ "${SVRRM_VOLT}" != "" ]; then - APCPDU_WATT=`echo "scale=2; ${APCPDU_AMP}*${SVRRM_VOLT}" | 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 - QRY="INSERT INTO power_data (sensorid, date, amp) VALUES ('12',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${APCPDU_AMP}')" - fi - ${mysql_conn} -e "USE servermonitor; ${QRY}" - 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) - - 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}" - ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), watt = '${NETRK_WATT}' WHERE sensorid='${PW_POWERSENSOR_ID['network-rack']}'" - fi - - 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_WATT=$(echo "${AIRCON_INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') - AIRCON_WATT=$(echo "scale=1; ${AIRCON_WATT}/10" | 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) - - 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}" - ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), watt = '${AIRCON_WATT}' WHERE sensorid='${PW_POWERSENSOR_ID['ServerRoom-AC']}'" - - else - AIRCON_WATT=0 - AIRCON_AMP=0 - 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) - 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']}'" - fi - - ### KYLE - 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_WATT=$(echo "${KYLE_INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') - KYLE_WATT=$(echo "scale=1; ${KYLE_WATT}/10" | 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) - - 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}" - ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), watt = '${KYLE_WATT}' WHERE sensorid='${PW_POWERSENSOR_ID['KP-Power']}'" - - else - KYLE_AMP=0 - KYLE_WATT=0 - fi - 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_WATT=$(echo "${KYLE_INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') - KYLE_WATT=$(echo "scale=1; ${KYLE_WATT}/10" | 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) - - 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}" - - else - KYLE_AMP=0 - KYLE_WATT=0 - fi - - - if [ "${PW_OFFSITE_MONITOR}" = "$(ip addr show $(ip route | awk '/default/ { print $5 }') | grep "inet" | head -n 1 | awk '/inet/ {print $2}' | cut -d'/' -f1)" ]; then - upsinfo=$(upsc offsite-ups 2>&1) - else - upsinfo=$(ssh -q -o ConnectTimeout=3 -o ConnectionAttempts=1 root@${PW_OFFSITE_MONITOR} 'upsc offsite-ups' 2>&1) - fi - 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` - - 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` - done - if (( $(bc <<<"${OFFSITE_WATTS} < ${TOTAL_MISC_WATTS}") )); then - OFFSITE_WATTS=${TOTAL_MISC_WATTS} - OFFSITE_AMPS=${TOTAL_MISC_AMPS} - fi - fi - QRY="INSERT INTO power_data (sensorid, date, volt, amp, watt) VALUES ('${PW_POWERSENSOR_ID['offsite-ups']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${OFFSITE_VOLTOUT}','${OFFSITE_AMPS}','${OFFSITE_WATTS}')" - ${mysql_conn} -e "USE servermonitor; ${QRY}" - fi - - for mSENSOR in "${PW_POWERSENSOR_MISC[@]}"; do - IFS=: read -r AMP WATT VOLT <<< $(GET_TUYA_POWER ${mSENSOR}); unset IFS - if [ "${VOLT}" != "" ] && [ "${PW_POWERSENSOR_ID[${mSENSOR}]}" != "" ]; then - QRY="INSERT INTO power_data (sensorid, date, volt, amp, watt) VALUES ('${PW_POWERSENSOR_ID[${mSENSOR}]}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${VOLT}','${AMP}','${WATT}')" + QRY="INSERT INTO inv_jsonstats (date, data) VALUES (CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${INVSTATSINFO}')" ${mysql_conn} -e "USE servermonitor; ${QRY}" fi - done - for SENSOR in ${PW_SENSOR_ORD[@]}; do - [[ "${PW_HOST_IDRACS[${SENSOR}]}" = "10.6."* ]] && ESXI_PASS=${PW_ESXI_PASS_KP} || ESXI_PASS=${PW_ESXI_PASS} - if [ "${PW_HOST_IDRACS[${SENSOR}]}" != "" ] && [ "$(ipmitool -I lanplus -H ${PW_HOST_IDRACS[${SENSOR}]} -U ${PW_ESXI_USER} -P "${ESXI_PASS}" chassis power status | grep 'Power is on')" != "" ]; then - HOST_WATT_SENSORS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.8.1 -O vq | sed -e 's/"//g') - if [[ "${HOST_WATTS}" != *"Timeout"* ]] && [ "${HOST_WATT_SENSORS}" != "" ]; then - IFS=$'\n' - read -rd '' -a HOST_WATT_SENSORS <<<"${HOST_WATT_SENSORS}" - unset IFS - if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.disable ] || ([ -f ${PW_TMPFOLDER}/${SENSOR}.disable ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/${SENSOR}.disable)) -ge 120 ]); then - [ -f ${PW_TMPFOLDER}/shutdown.${PW_HOST_ADDRESSES[${SENSOR}]} ] && rm -f ${PW_TMPFOLDER}/shutdown.${PW_HOST_ADDRESSES[${SENSOR}]} - [ -f ${PW_TMPFOLDER}/shutdown.ALL ] && rm -f ${PW_TMPFOLDER}/shutdown.ALL - [[ "${PW_OFFSITE_HOSTS}" = *"${PW_HOST_ADDRESSES[${SENSOR}]}"* ]] && rm -f ${PW_TMPFOLDER}/shutdown.OFFSITE - [[ "${PW_MAINSITE_HOSTS}" = *"${PW_HOST_ADDRESSES[${SENSOR}]}"* ]] && rm -f ${PW_TMPFOLDER}/shutdown.MAINSITE - [[ "${PW_MAIN_HOSTS}" = *"${PW_HOST_ADDRESSES[${SENSOR}]}"* ]] && rm -f ${PW_TMPFOLDER}/shutdown.MAIN - [[ "${PW_SYS_HOSTS}" = *"${PW_HOST_ADDRESSES[${SENSOR}]}"* ]] && rm -f ${PW_TMPFOLDER}/shutdown.SYS - rm -f ${PW_TMPFOLDER}/${SENSOR}.disable - fi - - - PS1='0.0'; PS2='0.0'; HOST_WATTS=0 - for s in {1..5}; do - DP=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.8.1.${s} | sed 's/.*: //') - if [[ "${DP}" = *"System Board"* ]]; then - found=1 - HOST_WATTS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.6.1.${s} | sed 's/.*: //') - - elif [[ "${DP}" = *"PS1"* ]]; then - PS1=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.6.1.${s} | sed 's/.*: //') - elif [[ "${DP}" = *"PS2"* ]]; then - PS2=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.6.1.${s} | sed 's/.*: //') - fi + 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_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` + 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']}'" + fi + + 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` + if [ "${SVRRM_VOLT}" != "" ]; then + APCPDU_WATT=`echo "scale=2; ${APCPDU_AMP}*${SVRRM_VOLT}" | 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 + QRY="INSERT INTO power_data (sensorid, date, amp) VALUES ('12',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${APCPDU_AMP}')" + fi + ${mysql_conn} -e "USE servermonitor; ${QRY}" + 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) + + 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}" + ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), watt = '${NETRK_WATT}' WHERE sensorid='${PW_POWERSENSOR_ID['network-rack']}'" + fi + + 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_WATT=$(echo "${AIRCON_INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') + AIRCON_WATT=$(echo "scale=1; ${AIRCON_WATT}/10" | 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) + + 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}" + ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), watt = '${AIRCON_WATT}' WHERE sensorid='${PW_POWERSENSOR_ID['ServerRoom-AC']}'" + + else + AIRCON_WATT=0 + AIRCON_AMP=0 + 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) + 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']}'" + fi + + ### KYLE + 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_WATT=$(echo "${KYLE_INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') + KYLE_WATT=$(echo "scale=1; ${KYLE_WATT}/10" | 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) + + 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}" + ${mysql_conn} -e "USE servermonitor; UPDATE latest_sensor_data SET date = CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'), watt = '${KYLE_WATT}' WHERE sensorid='${PW_POWERSENSOR_ID['KP-Power']}'" + + else + KYLE_AMP=0 + KYLE_WATT=0 + fi + 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_WATT=$(echo "${KYLE_INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') + KYLE_WATT=$(echo "scale=1; ${KYLE_WATT}/10" | 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) + + 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}" + + else + KYLE_AMP=0 + KYLE_WATT=0 + fi + + + if [ "${PW_OFFSITE_MONITOR}" = "$(ip addr show $(ip route | awk '/default/ { print $5 }') | grep "inet" | head -n 1 | awk '/inet/ {print $2}' | cut -d'/' -f1)" ]; then + upsinfo=$(upsc offsite-ups 2>&1) + else + upsinfo=$(ssh -q -o ConnectTimeout=3 -o ConnectionAttempts=1 root@${PW_OFFSITE_MONITOR} 'upsc offsite-ups' 2>&1) + fi + 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` + + 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` 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` - 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}" + if (( $(bc <<<"${OFFSITE_WATTS} < ${TOTAL_MISC_WATTS}") )); then + OFFSITE_WATTS=${TOTAL_MISC_WATTS} + OFFSITE_AMPS=${TOTAL_MISC_AMPS} fi fi + QRY="INSERT INTO power_data (sensorid, date, volt, amp, watt) VALUES ('${PW_POWERSENSOR_ID['offsite-ups']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${OFFSITE_VOLTOUT}','${OFFSITE_AMPS}','${OFFSITE_WATTS}')" + ${mysql_conn} -e "USE servermonitor; ${QRY}" fi - done + + for mSENSOR in "${PW_POWERSENSOR_MISC[@]}"; do + IFS=: read -r AMP WATT VOLT <<< $(GET_TUYA_POWER ${mSENSOR}); unset IFS + if [ "${VOLT}" != "" ] && [ "${PW_POWERSENSOR_ID[${mSENSOR}]}" != "" ]; then + QRY="INSERT INTO power_data (sensorid, date, volt, amp, watt) VALUES ('${PW_POWERSENSOR_ID[${mSENSOR}]}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${VOLT}','${AMP}','${WATT}')" + ${mysql_conn} -e "USE servermonitor; ${QRY}" + fi + done + + for SENSOR in ${PW_SENSOR_ORD[@]}; do + [[ "${PW_HOST_IDRACS[${SENSOR}]}" = "10.6."* ]] && ESXI_PASS=${PW_ESXI_PASS_KP} || ESXI_PASS=${PW_ESXI_PASS} + if [ "${PW_HOST_IDRACS[${SENSOR}]}" != "" ] && [ "$(ipmitool -I lanplus -H ${PW_HOST_IDRACS[${SENSOR}]} -U ${PW_ESXI_USER} -P "${ESXI_PASS}" chassis power status | grep 'Power is on')" != "" ]; then + HOST_WATT_SENSORS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.8.1 -O vq | sed -e 's/"//g') + if [[ "${HOST_WATTS}" != *"Timeout"* ]] && [ "${HOST_WATT_SENSORS}" != "" ]; then + IFS=$'\n' + read -rd '' -a HOST_WATT_SENSORS <<<"${HOST_WATT_SENSORS}" + unset IFS + if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.disable ] || ([ -f ${PW_TMPFOLDER}/${SENSOR}.disable ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/${SENSOR}.disable)) -ge 120 ]); then + [ -f ${PW_TMPFOLDER}/shutdown.${PW_HOST_ADDRESSES[${SENSOR}]} ] && rm -f ${PW_TMPFOLDER}/shutdown.${PW_HOST_ADDRESSES[${SENSOR}]} + [ -f ${PW_TMPFOLDER}/shutdown.ALL ] && rm -f ${PW_TMPFOLDER}/shutdown.ALL + [[ "${PW_OFFSITE_HOSTS}" = *"${PW_HOST_ADDRESSES[${SENSOR}]}"* ]] && rm -f ${PW_TMPFOLDER}/shutdown.OFFSITE + [[ "${PW_MAINSITE_HOSTS}" = *"${PW_HOST_ADDRESSES[${SENSOR}]}"* ]] && rm -f ${PW_TMPFOLDER}/shutdown.MAINSITE + [[ "${PW_MAIN_HOSTS}" = *"${PW_HOST_ADDRESSES[${SENSOR}]}"* ]] && rm -f ${PW_TMPFOLDER}/shutdown.MAIN + [[ "${PW_SYS_HOSTS}" = *"${PW_HOST_ADDRESSES[${SENSOR}]}"* ]] && rm -f ${PW_TMPFOLDER}/shutdown.SYS + rm -f ${PW_TMPFOLDER}/${SENSOR}.disable + fi + + + PS1='0.0'; PS2='0.0'; HOST_WATTS=0 + for s in {1..5}; do + DP=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.8.1.${s} | sed 's/.*: //') + if [[ "${DP}" = *"System Board"* ]]; then + found=1 + HOST_WATTS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.6.1.${s} | sed 's/.*: //') + + elif [[ "${DP}" = *"PS1"* ]]; then + PS1=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.6.1.${s} | sed 's/.*: //') + elif [[ "${DP}" = *"PS2"* ]]; then + PS2=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.6.1.${s} | sed 's/.*: //') + 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` + 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 + fi + fi + done +############################################################# + else ################# KYLE ######################### + + if [ "$(CHECK_HOST ${PW_UPS_IP})" != "false" ]; then + 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_AMPSIN=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.3.3.1.4.1 | sed 's/.*: //')\ + UPS_AMPSIN=`echo "scale=2; ${UPS_AMPSIN}/10" | bc` + UPS_AMPSOUT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.4.4.1.3.1 | sed 's/.*: //')\ + UPS_AMPSOUT=`echo "scale=2; ${UPS_AMPSOUT}/10" | 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/.*: //') + UPS_BATT_CAP=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.1.19.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}')" + ${mysql_conn} -e "USE servermonitor; ${QRY}" + QRY="INSERT INTO power_data (sensorid, date, volt, amp, watt) VALUES ('${PW_POWERSENSOR_ID['ups-output']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${UPS_VOLTOUT}','${UPS_AMPSOUT}','${UPS_WATTS}')" + ${mysql_conn} -e "USE servermonitor; ${QRY}" + QRY="INSERT INTO power_data (sensorid, date, volt) VALUES ('${PW_POWERSENSOR_ID['ups-battery']}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${UPS_BATT_VOLT}')" + ${mysql_conn} -e "USE servermonitor; ${QRY}" + fi + + for mSENSOR in "${PW_POWERSENSOR_MISC[@]}"; do + IFS=: read -r AMP WATT VOLT <<< $(GET_TUYA_POWER ${mSENSOR}); unset IFS + if [ "${VOLT}" != "" ] && [ "${PW_POWERSENSOR_ID[${mSENSOR}]}" != "" ]; then + QRY="INSERT INTO power_data (sensorid, date, volt, amp, watt) VALUES ('${PW_POWERSENSOR_ID[${mSENSOR}]}',CONVERT_TZ('${LogDataTime}', 'America/Chicago', 'UTC'),'${VOLT}','${AMP}','${WATT}')" + ${mysql_conn} -e "USE servermonitor; ${QRY}" + fi + done + + for SENSOR in ${PW_SENSOR_ORD[@]}; do + [[ "${PW_HOST_IDRACS[${SENSOR}]}" = "10.6."* ]] && ESXI_PASS=${PW_ESXI_PASS_KP} || ESXI_PASS=${PW_ESXI_PASS} + if [ "${PW_HOST_IDRACS[${SENSOR}]}" != "" ] && [ "$(ipmitool -I lanplus -H ${PW_HOST_IDRACS[${SENSOR}]} -U ${PW_ESXI_USER} -P "${ESXI_PASS}" chassis power status | grep 'Power is on')" != "" ]; then + HOST_WATT_SENSORS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.8.1 -O vq | sed -e 's/"//g') + if [[ "${HOST_WATTS}" != *"Timeout"* ]] && [ "${HOST_WATT_SENSORS}" != "" ]; then + IFS=$'\n' + read -rd '' -a HOST_WATT_SENSORS <<<"${HOST_WATT_SENSORS}" + unset IFS + if [ ! -f ${PW_TMPFOLDER}/${SENSOR}.disable ] || ([ -f ${PW_TMPFOLDER}/${SENSOR}.disable ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/${SENSOR}.disable)) -ge 120 ]); then + [ -f ${PW_TMPFOLDER}/shutdown.${PW_HOST_ADDRESSES[${SENSOR}]} ] && rm -f ${PW_TMPFOLDER}/shutdown.${PW_HOST_ADDRESSES[${SENSOR}]} + [ -f ${PW_TMPFOLDER}/shutdown.ALL ] && rm -f ${PW_TMPFOLDER}/shutdown.ALL + [[ "${PW_OFFSITE_HOSTS}" = *"${PW_HOST_ADDRESSES[${SENSOR}]}"* ]] && rm -f ${PW_TMPFOLDER}/shutdown.OFFSITE + [[ "${PW_MAINSITE_HOSTS}" = *"${PW_HOST_ADDRESSES[${SENSOR}]}"* ]] && rm -f ${PW_TMPFOLDER}/shutdown.MAINSITE + [[ "${PW_MAIN_HOSTS}" = *"${PW_HOST_ADDRESSES[${SENSOR}]}"* ]] && rm -f ${PW_TMPFOLDER}/shutdown.MAIN + [[ "${PW_SYS_HOSTS}" = *"${PW_HOST_ADDRESSES[${SENSOR}]}"* ]] && rm -f ${PW_TMPFOLDER}/shutdown.SYS + rm -f ${PW_TMPFOLDER}/${SENSOR}.disable + fi + + + PS1='0.0'; PS2='0.0'; HOST_WATTS=0 + for s in {1..5}; do + DP=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.8.1.${s} | sed 's/.*: //') + if [[ "${DP}" = *"System Board"* ]]; then + found=1 + HOST_WATTS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.6.1.${s} | sed 's/.*: //') + + elif [[ "${DP}" = *"PS1"* ]]; then + PS1=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.6.1.${s} | sed 's/.*: //') + elif [[ "${DP}" = *"PS2"* ]]; then + PS2=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_HOST_IDRACS[${SENSOR}]} iso.3.6.1.4.1.674.10892.5.4.600.30.1.6.1.${s} | sed 's/.*: //') + 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` + 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 + fi + fi + done + + + fi if ([ "$(compgen -G "${PW_TMPFOLDER}/temp.*")" != "" ] && [ "$(compgen -G "${PW_TMPFOLDER}/temp.*CPU*")" = "" ]) || [ "$(compgen -G "${PW_TMPFOLDER}/power.*.low")" != "" ]; then sleep ${PW_MYSQL_LOG_INTERVAL_ABNORMAL}m