Вопрос или проблема
Я хочу иметь возможность выводить все OID и имена MIB рядом.
Это выведет oids
snmpwalk -v2c -c public 10.10.10.10
Это выведет mibs
snmpwalk -v2c -c public -m ALL 10.10.10.10
Как я могу показать OID + имя MIB в одной строке?
Я нашел, что это кажется рабочим вариантом, но есть ли способ проще?
snmpwalk -v2c -c public 10.10.10.10 > oids
snmpwalk -v2c -c public -m ALL 10.10.10.10 > mibs
paste pan-oids pan-mibs > oid-mibs
Ответ или решение
Для того чтобы одновременно вывести идентификаторы объектов (OID) и их соответствующие названия MIB на одной строке с помощью утилиты snmpwalk
, существует несколько способов. Вы можете воспользоваться предложенным вами методом с использованием командной строки, однако есть и более оптимизированные решения. Рассмотрим детально, как добиться желаемого результата, сохраняя за собой структурированность и аккуратность.
Основной подход
Ваш текущий метод включает два отдельных вызова snmpwalk
, где результаты сохраняются в файлы, а затем сливаются с помощью команды paste
. Это, безусловно, рабочий вариант, но можно сделать его более элегантным и менее трудозатратным.
Оптимизированный способ
- Использование одного вызова: Можно использовать утилиту
snmpwalk
совместно с командными утилитами Unix для обработки данных на лету. Вариант сawk
будет наиболее удобным.
snmpwalk -v2c -c public -m ALL 10.10.10.10 | awk -F ' = ' '{print $1, $2}'
Этот вариант извлекает OID и соответствующее имя MIB и выводит их в одном формате, однако не всегда OID может быть в понятной MIB имя.
- Используйте OID вместе с MIB непосредственно. Настроив
snmptranslate
, вы можете одновременно отображать как OID, так и соответствующее имя MIB.
snmpwalk -v2c -c public 10.10.10.10 | awk '{print $1}' | xargs -I {} snmptranslate -On {} | xargs -I {} snmpwalk -v2c -c public -m ALL 10.10.10.10 {}
Другие полезные советы
-
Убедитесь, что все необходимые MIB файлы загружены: Для корректного отображения имен MIB, вам нужно убедиться, что у вас есть доступ к всем используемым MIB. Можно указать конкретные MIB файлы с помощью параметра
-m
. -
Проверка правильных версий snmp: Версия утилиты
snmp
должна быть актуальной, так как более старые версии могут не поддерживать те или иные команды и опции. -
Скрипт для автоматизации: Если вы часто выполняете это действие, вероятно, будет целесообразно создать оболочку или скрипт, который будет включать в себя указанные команды и будет принимать IP-адрес и параметры SNMP, выводя результаты в удобном формате.
Заключение
Таким образом, вывод OID и названий MIB на одной строке можно осуществить разными способами, включая оптимизированные методы, которые позволяют сократить количество необходимых шагов и улучшить читаемость вывода. Используйте предложенные варианты и сочетания команд UNIX, чтобы создать собственное эффективное решение, которое ускорит вашу работу с SNMP.