在Netmiko中使用TextFSM
在 netmiko 中使用 TextFSM
安装模板
1 | $ cd ~ |
查看安装完成
1 | $ cd ~ |
Netmiko已配置为自动在〜/ntc-template/templates/index中查找ntc-templates索引文件。另外,可以通过设置以下环境变量来明确告诉Netmiko在哪里寻找TextFSM模板目录(请注意,此目录中必须有一个索引文件):export NET_TEXTFSM=/path/to/ntc-templates/templates/
使用
查看ntc-templates\index
文件,确保其中有正确的命令且目录下存在模板文件。之后在 netmiko 中将use_textfsm = True
参数添加到send_command()
方法或send_command_timing()
方法,即可获得结构化的数据;如果不存在模板,则正常返回字符串。
1 | net_connect.send_command("show ip int brief", use_textfsm=True) |
OUTPUT:
1 | [{'intf': 'FastEthernet0', |
如何编写自定义TextFSM模板
示例
使用一系列正则表达式来定义要从纯文本输出中提取的数据。下面是一个处理思科接口的模板:
1 | # cisco_asa_show_interface.template |
通过show interface
获取到的原始文本字符串:
1 | # output of show interface |
通过 TextFsm 进行处理:
1 | # import library |
输出如下:
1 | [['GigabitEthernet0/0', |
一些已经写好的华三设备的模板:https://github.com/xdai555/textfsm_hpe_cmw7