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 

Мне здесь не нравится, что он использует fileовую систему, но я не знаю, как читать вывод команды на одну переменную и вывести код команды в другую переменную.

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

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

Вы можете напрямую использовать команду 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 и сохраняет результат в переменном диске.

он проверяет условную ошибку snmpget и возвращает 3 (неизвестно для nagios), если проблема.

Параметры snmpget:

  • -v1 версия snmp
  • -c сообщество
  • -Ovq OUPUT, которые возвращают только результат без requestа OID

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

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

 data=$(your command) result=$? 

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

Interesting Posts

Резервные копии журналов транзакций SQL Server,

Если я отkeyу задачу Windows в планировщике задач, она остановит текущую запущенную задачу?

Не удается get команду запуска

Ошибка подтверждения приветствия Dovecot, успех Postfix

Перезапустить tomcat на двух разных serverах одновременно

Нет такого fileа или directoryа после rpm -e -nodeps packagename вместо команды не найден

Apache переписать для игнорирования определенной директории и всего ее содержимого

Почему у меня есть файл .rpmnew после обновления?

Apache возвращает SSL23_GET_SERVER_HELLO: ошибка протокола unknow при подkeyении с внешнего адреса

Сервер Ubuntu 10.04 застрял в подсказке grub

Где установить parameters кучи java (например, -Xmx) для Tomcat 6 под Ubuntu 9.04?

Могу ли я создать правило pf с использованием MAC-адреса вместо IP?

Nginx Rewrite Rule To 301 перенаправить filename.asp в filename.php

В чем проблема с запуском файлового сервера (FreeNAS) в виртуальной машине?

Что такое нормальное значение для страниц / сек на веб-serverе Windows Server 2003?

Давайте будем гением компьютера.