﻿#!/bin/bash
#exit code 0 - нет проблем
#exit code 1 - проблемы с snmp
#exit code 2 - получено значение тревоги
#exit code 9 - что то пошло не так с получением состояния ио линии

ip="192.168.0.100"
community="SWITCH"
ioN=$1
normValue=$2
alertValue=$3

if [ $1 = "-h" ] ; then
echo "get_io.sh ioN normValue alertValue"
exit
fi

state=$(snmpget -v1 -c $community -Ov -Oq $ip .1.3.6.1.4.1.25728.8900.1.1.2.$ioN) # состояние первой ио линии
memo=$(snmpget -v1 -c $community -Ov -Oq $ip .1.3.6.1.4.1.25728.8900.1.1.6.$ioN) #памятка линии

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

#вывод информации для отображения в Monit
#echo "io${ioN}_state=$state memo:$memo"

if [ "$state" = "$normValue" ] ; then # вариант с нормальным значением
curl -s -i -XPOST "http://localhost:8086/write?db=netping" --data-binary "io${ioN} value=${state}" > /dev/null
echo "io${ioN}_state=$state - OK ${memo}"
exit 0 
elif [ "$state" = "$alertValue" ] ; then # вариант со значением алерта
curl -s -i -XPOST "http://localhost:8086/write?db=netping" --data-binary "io${ioN} value=${state}" > /dev/null

echo "io${ioN}_state=$state - ALARM ${memo}"
exit 2
else
echo "Problem with io(${ioN}). Please check manually."
exit 9
fi