使用python脚本备份交换机配置文件

前言:
最近一直在研究如何使用python对网络设备进行配置文件备份,经过半天的研究终于实现对几十台交换机进行自动备份。

准备工作:
1.python环境搭建,我使用的是python3.9和pycharm;
2.安装os、netmiko、 time、re、multiprocessing.dummy模块;
3.准备一个放IP地址的文本文件,我这里用的是ip.txt;
4.SecureCRT.exe用来登陆设备分析参数。

使用python脚本备份交换机配置文件_第1张图片
使用python脚本备份交换机配置文件_第2张图片

代码:

import os
from netmiko import ConnectHandler
import time
import re
from multiprocessing.dummy import Pool

user = 'admin'
psd = 'xxxxxxxxxx'
dev = 'huawei'
# 获取当前时间
today = time.strftime("%Y%m%d-%H%M", time.localtime())
# 如果不存在此文件夹就创建文件夹
if not os.path.exists(today):
    os.makedirs(today)

# add = open('ip.txt', 'r')


def get_text(ip):# 定义函数获取配置文件
    connect = ConnectHandler(device_type=dev, host=ip, username=user, password=psd) 
    # 向设备发送命令并获取显示的文本
    connect.send_command('screen-length disable')
    output = connect.send_command('dis cu')
    # 匹配管理地址
    ex = 'interface Vlan-interface1.*?ip address (.*?) 255.255.255.0'
    re_ip = re.findall(ex, output, re.S)[0]
    re_ip_txt = re_ip + '.txt'
    # 保存配置文件
    path = today + '/' + re_ip_txt
    with open(path, 'w', encoding='utf-8') as fp:
        fp.write(output)


# 获取文本里面的ip
ipad = []
add = open('ip.txt', 'r')
for ips in add:
    ipad.append(ips)

# 实例化一个进程池
pool = Pool(10)
# 调用进程执行函数
pool.map(get_text, ipad)
# 关闭打开的文件
add.close()

结果:


上面是保存配置文件的目录,前面是年月日,后面是几点几分。

使用python脚本备份交换机配置文件_第3张图片
这个是保存的配置文件。

总结:
总体来说还是比较顺利,第一次执行的时候有两个设备没有备份,后面发现是因为这两台设备需要对终端进行身份验证,使用SecureCRT.exe登陆一下设备就可以了,然后在执行脚本就没有任何问题了。
这个脚本可以更具需要进行改动,对于刚入门的小伙伴来说非常友善,有什么问题也可以给我留言,我们一起学习交流。
最后祝大家事业有成,身强体健!

你可能感兴趣的:(python,开发语言)