自动化运维-收集设备快照
当设备出现问题 来处理时最后悔的事情是。
- 之前是怎么样的是不是配置被改了
- 这个之前是在用吗
网络设备快照
通一个简单程序自动登入交换机把命令输出结果解析一个。TextFSM
这个是一个解析神奇
class rgSwInfo:
""" 锐捷
接口统一 支持大部分管理型交换机
获取 华为交换机信息"""
def __init__(self,cfg):
""" 初始化 """
def login(self,user,passwd,ip):
"""登入交换机 返回telnet"""
def todo(self):
""" 实际要执行的内容"""
def cfg2get(self,tn):
""" 获取配置文件 """
def list2str(self,tabLs):
""" 多行合并成字符串"""
##------------arp------------
def arp2tab(self,tn):
""" 返回交换 arp表 字符串数组"""
def arp2rows(self,arpTab,tpl="display-arp.template"):
""" 解析表格字符串 返回json"""
def arp2json(self,ls):
""" 带表头 col """
##------------mac------------
def mac2tab(self,tn):
""" 返回交换 arp表"""
def mac2rows(self,tabStr,tpl="display-mac.template"):
def mac2json(self,ls):
""" 带表头 col """
输出每个设备的特定文件
5560_192.168.0.3_arp.json
5560_192.168.0.3_mac.json
lou10_192.168.11.205_mac.json
lou3_192.168.11.203_mac.json
lou7_192.168.11.202_mac.json
OpenWrt_192.168.20.1_arp.json
rg552_192.168.11.200_mac.json
s3700_192.168.0.2_arp.json
s3700_192.168.0.2_mac.json
mac文件内格式
[
{
"mac": "00e0-4c37-ace4",
"port": "Eth0/0/10",
"vlan": "34"
},
.....
]
arp文件格式
[
{
"ip": "192.168.11.2",
"mac": "80fb-06c9-6db9",
"port": "Vlanif11",
"t": "I - ",
"vlan": ""
},
...
]
在表格中查看简单分析