欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python网络设备配置文件检索程序

程序员文章站 2022-03-11 15:11:37
用途说明:用途:在配置备份中检索信息,比如想知道全网配置备份中哪些设备运行了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