Парсинг вывода sh int gi0/1 status с помощью TextFSM

Вывод команды:

cgs2520-1#sh int fa0/22 status

Port Name Status Vlan Duplex Speed Type
Fa0/22 AP connected 350 a-full a-100 10/100BaseTX

Задача – распарсить вывод и получить значения следующих полей – статус, скорость, дуплекс, имя и влан.

Результат TextFSM выводит в списке списков. Чтобы сделать из списка списков список:

flat_list = [item for sublist in result for item in sublist]

Собрать в словарь два списка одинаковой длины:

sw=dict(zip(header,flat_list))

Варианты шаблонов для TextFSM здесь

Скрипт здесь. Заходит на железку, смотрит статус интерфейса (переменная задана в скрипте). Вывод записывается в файл, который идентичен ip-адресу железки. Далее вывод парсится по шаблону TextFSM (descr.template). Выводятся порт и дескрипшен.

Leave a comment