﻿#!/bin/bash
#exit code 0 - нет проблем
#exit code 1 - проблемы с snmp
#exit code 2 - датчик не подкдлючен или не исправен
#exit code 3 - Ниже нормы
#exit code 4 - выше нормы
#exit code 9 - что то пошло не так с получением информации с датчика

ip="192.168.0.100"
community="SWITCH"
tempN=$1

if [ $1 = "-h" ] ; then
echo "get_temp1w.sh tempN"
exit
fi

currentTemp=$(snmpget -v1 -c ${community} -Ov -Oq ${ip} .1.3.6.1.4.1.25728.8800.1.1.2.${tempN}) # текущая температура
status=$(snmpget -v1 -c $community -Ov -Oq $ip .1.3.6.1.4.1.25728.8800.1.1.3.${tempN}) #статус датчика
memo=$(snmpget -v1 -c $community -Ov -Oq $ip .1.3.6.1.4.1.25728.8800.1.1.6.${tempN}) #памятка
botTemp=$(snmpget -v1 -c $community -Ov -Oq $ip .1.3.6.1.4.1.25728.8800.1.1.4.${tempN}) #Нижняя граница
topTemp=$(snmpget -v1 -c $community -Ov -Oq $ip .1.3.6.1.4.1.25728.8800.1.1.5.${tempN}) #Верхняя граница

#проверка на успешность получения данных
error=$?
if [ $error -ne 0 ] ; then
echo "Error code from SNMP - $error"
exit 1
fi

if [ "$status" = "0" ] ; then # датчик неисправен или не подключен
echo "Sensor not working or not connected"
exit 2
elif [ "$status" = "1" ] ; then # ниже нормы
curl -s -i -XPOST "http://localhost:8086/write?db=netping" --data-binary "temp1 value=${currentTemp} low=${botTemp} high=${topTemp}" > /dev/null
echo "T${tempN}=${currentTemp} - ниже нормы (${botTemp}..${topTemp}) (${memo})"
exit 3
elif [ "$status" = "3" ] ; then # выше нормы
curl -s -i -XPOST "http://localhost:8086/write?db=netping" --data-binary "temp1 value=${currentTemp} low=${botTemp} high=${topTemp}" > /dev/null
echo "T${tempN}=${currentTemp} - выше нормы (${botTemp}..${topTemp}) (${memo})"
exit 4
elif [ "$status" = "2" ] ; then # в норме
curl -s -i -XPOST "http://localhost:8086/write?db=netping" --data-binary "temp1 value=${currentTemp},low=${botTemp},high=${topTemp}" > /dev/null
echo "T${tempN}=${currentTemp} - в норме (${botTemp}..${topTemp}) (${memo})"
exit 0
else
echo "Problem with T(${tempN}). Please check manually."
exit 9
fi