Nagios SNMP: разные OID для одного и того же значения

С Nagios я хочу прочитать имя устройства сотен устройств Ubiquity. Это значение имеет один OID на некоторых из них и другой на других. Лучший способ, который у меня есть до сих пор, - использовать этот сценарий:

$1/check_snmp -H $2 -o .1.2.840.10036.3.1.2.1.3.5 > /tmp/$2.snmp.nagios.tmp
status=$?
if [ $status -ne 0 ]; then
  $1/check_snmp -H $2 -o .1.2.840.10036.3.1.2.1.3.9 > /tmp/$2.snmp.nagios.tmp
  status=$?
fi
cat /tmp/$2.snmp.nagios.tmp
exit $status

Что мне здесь не нравится, так это то, что он использует файловую систему, но я не знаю, как считать вывод команды в одну переменную и код выхода команды в другую переменную.

Есть ли способ записать это так, чтобы использовались только переменные?

Разве нет лучшего способа достичь главной цели?

0
задан 14 June 2017 в 17:53
2 ответа

Вы можете использовать непосредственно команду snmpget вместо check_snmp, потому что check_snmp будет использовать snmpget (или другой инструмент netsnmp инструментов) и работает на результат, хранящийся в переменной.

Я вставляю здесь скелет сценария, который я использую для этого :

function control_error {
    echo "UNKNOWN : Error during operation" 
    exit 3
}
drive="$(snmpget -v1 -Ovq -c <community snmpv1> $IPadress .1.3.6.1.4.1.2.3.51.3.1.13.1.3.1.2.$i)"
if [ $? != 0 ]; then control_error;fi
drive="$(echo $drive | sed -e 's/"//g')"
...

Этот сценарий читает OID и хранит результат в переменной диска.

он проверяет Evental error snmpget и возвращает 3 (неизвестно для nagios) если проблема.

Опциями snmpget являются :

  • -v1 версия опций snmp
  • -c community
  • -Ovq OUPUT, которая возвращает только результат без запрошенного OID

После того, как вы можете работать над переменной, например, в этом скрипте с echo и sed

.
2
ответ дан 4 December 2019 в 12:20

Обычно я делаю так:

data=$(your command)
result=$?

Таким образом, вы получаете выход вашей команды в $data и код возврата в $result. Но, возможно, есть и более приятный способ.

.
1
ответ дан 4 December 2019 в 12:20

Теги

Похожие вопросы