Python网络设备配置文件检索程序
程序员文章站
2022-06-27 18:04:55
用途说明:用途:在配置备份中检索信息,比如想知道全网配置备份中哪些设备运行了ssh。输入ssh,会生成一个设备信息.xlsx,信息包含:配置有ssh命令的所有设备管理IP、设备名、ssh配置信息模块安装:pip install pandaspip install re脚本执行:将程序放在配置备份文件夹外面#-*- coding:utf-8 -*-# Author:Sheng Luhao# ScriptName: configuration_getV1.0.py# Create Date:...
用途说明:
用途:在配置备份中检索信息,比如想知道全网配置备份中哪些设备运行了ssh。输入ssh,会生成一个设备信息.xlsx,信息包含:配置有ssh命令的所有设备管理IP、设备名、ssh配置信息
模块安装:
pip install pandas
pip install re
脚本执行:将程序放在配置备份文件夹外面
#-*- coding:utf-8 -*-
# Author:Sheng Luhao
# ScriptName: configuration_getV1.0.py
# Create Date: 2020-12-02 21: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-02 21:03
#***************************************************************#
import pandas as pd
import os
import re
import sys
if __name__ == '__main__':
configuration = input('请输入配置备份文件夹路径:')
file_list_all = os.scandir(configuration) # 遍历配置文件
file_list = []
for item in file_list_all: # 检索所有配置备份,放进file_list中,这里可以自定义对哪些设备检索
if re.search('\S+.txt',item.name):
file_list.append(item.name)
print(f'配置备份有{len(file_list)}个配置文件')
souyin = input('输入需要搜索的内容:')
'''定义管理IP、设备名、检索的内容'''
glip = []
device_name = []
neirong = []
for device in file_list:
judge = False
xinxi = ''
with open(fr'{configuration}\{device}','r',encoding='utf8') as f: #打开所有设备的配置文件
info = f.readlines()
for line in info:
if souyin in line:
judge = True #这个judge为了防止glip、device_name重复添加进列表,单独拎出来
xinxi = f'{xinxi}{line}' #提取检索信息
if judge: #只添加一次glip、device_name、xinxi
device_name.append(re.search('(\S+)-((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))', device).group(1)) #添加设备名到device_name
glip.append(re.search('(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)',device).group()) #添加glip
neirong.append(xinxi)
# neirong.pop(0)
# print(glip)
print(f'匹配到管理IP的设备数{len(glip)}')
# print(device_name)
print(f'匹配到设备名的设备数{len(device_name)}')
# print(neirong)
print(f'匹配到信息的设备数{len(neirong)}')
'''将信息信息写入表格'''
raw_data = {'管理IP':glip,
'设备名':device_name,
'检索信息':neirong}
df = pd.DataFrame(raw_data)
df.to_excel('配置信息.xlsx', sheet_name='Test01', index=False)
'''打印文件所在路径'''
os.chdir(sys.path[0]);
dir_name = os.path.abspath(os.path.join(os.getcwd(), "."));
print(f'路径 {dir_name}\设备信息.xlsx')
本文地址:https://blog.csdn.net/weixin_42775770/article/details/110499434