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

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

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

在这里插入图片描述
在这里插入图片描述

代码:

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()

结果:


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

在这里插入图片描述
这个是保存的配置文件。

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

使用Python脚本自动备份交换机的配置是一种高效的方法,可以节省时间和精力,并确保重要的网络设备配置得到及时备份。通过使用Paramiko库建立SSH连接和执行命令,我们可以轻松地实现自动备份功能。以下是一个示例代码,展示了如何使用Python脚本自动备份华为交换机的配置: ```python import paramiko import time # 创建SSH连接 ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('设备IP地址', username='用户名', password='密码') # 执行备份命令 ssh.exec_command('system-view') time.sleep(1) ssh.exec_command('save configuration to tftp 服务器IP地址 文件名') # 保存备份文件 sftp = ssh.open_sftp() sftp.get('文件名', '本地保存路径') sftp.close() # 关闭SSH连接 ssh.close() ``` 在这个示例代码中,我们首先创建了一个SSH连接,并使用给定的用户名和密码连接到交换机。然后,我们执行了备份命令,将配置保存到指定的TFTP服务器上。最后,我们使用SFTP协议将备份文件下载到本地保存路径,并关闭SSH连接。 请注意,你需要将代码中的"设备IP地址"、"用户名"、"密码"、"服务器IP地址"、"文件名"和"本地保存路径"替换为实际的值。此外,你还需要安装Paramiko库,可以使用pip命令进行安装。 希望这个示例代码能够帮助你实现自动备份交换机的配置。如果你有任何其他问题,请随时提问。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值