用途说明:
用途:在配置备份中检索信息,比如想知道全网配置备份中哪些设备运行了边缘端口。输入stp edged-port enable,会生成一个设备信息.xlsx,信息包含:配置有stp edged-port enable命令的所有设备管理IP、设备名、ssh配置信息
注意:华为设备配置是根据#来区分一段配置,如果是其他设备比如Cisco可以把#替换成!
举例:
#
stack
#
license
#
interface Eth-Trunk5
port link-type trunk
undo port trunk allow-pass vlan 1
stp edged-port enable
#
搜索stp edged-port enable只会提取出#开始的内容:
#
interface Eth-Trunk5
port link-type trunk
undo port trunk allow-pass vlan 1
stp edged-port enable
模块安装:
pip install pandas
pip install re
脚本执行:输入配置备份文件夹所在的路径
#-*- coding:utf-8 -*-
# Author:Sheng Luhao
# ScriptName: configuration_getV1.0.py
# Create Date: 2020-12-04 18:03
#***************************************************************#
import pandas as pd
import os
import re
import sys
#-*- coding:utf-8 -*-
# Author:Sheng Luhao
# ScriptName: configuration_getV1.0.py
# Create Date: 2020-12-04 18:03
#***************************************************************#
if __name__ == '__main__':
file_place = input('请输入配置备份的路径:')
file_list_all = os.scandir(file_place) # 遍历配置文件
file_list = []
for item in file_list_all: # 检索设备,放进file_list中
if re.search('.*\.txt',item.name):
file_list.append(item.name)
print(f'配置备份有{len(file_list)}个配置文件')
find_info = input('输入需要搜索的内容:')
'''定义管理IP、设备名、检索的内容'''
glip = []
device_name = []
neirong = []
for device in file_list:
judge = False
xinxi = ''
with open(fr'configuration\{device}','r',encoding='utf8') as f: #打开所有的华为设备配置文件
xxx_before = ''
xxx_after = ''
info = f.readlines()
for suoyin,line in enumerate(info): #循环配置文件
if find_info in line: #检索信息
judge = True #这个judge为了防止glip、device_name重复添加进列表,单独拎出来