команда cisco parse show

команда cisco parse show

Я хочу написать скрипт perl, который входит в коммутаторы cisco через telnet и анализирует вывод show mac-address-table. Проблема в том, что разные коммутаторы показывают мне разную компоновку полей.

WS-C3548-XL отображает поля в следующем порядке:

Destination Address Address Type VLAN Destination Port

в то время как C2960 показывает это как

Vlan Mac Address Type Ports

есть ли способ заставить show выводить поля в предопределенном порядке?

решение1

Опросить устройства с помощью SNMP. Я бы подумал, что MIB одинаковы, но с Cisco никогда не знаешь наверняка.

решение2

Нет, насколько мне известно, нет.

Но поскольку вы уже используете perl, просто проверьте первую строку. С этого момента вы знаете, что означают конкретные поля, и заполняете свой хэш (надеюсь, вы его используете!) соответствующим образом. Это имеет дополнительное преимущество, заключающееся в том, что в будущем вы сможете поддерживать другие модели с еще одним форматом вывода. При этом поддерживая «старые». Надежное программирование.

...О, и не забудьте указать пробел в поле «Тип адреса» :)

решение3

Вы когда-нибудь задумывались о написании скриптов с использованием SNMP? Вы можете запустить внешние утилиты snmpget / snmpwalk и проанализировать вывод или использовать модуль Net::SNMP.

решение4

SNMP был бы лучшим. Но также помните, что модификатор вывода "include" поддерживает регулярные выражения. Вы можете просто взять нужную информацию, если хотите, придерживайтесь Perl-expect

Связанный контент