Python批量备份华为或者华三路由器和交换机配置

编程入门 行业动态 更新时间:2024-10-26 00:30:30

Python批量备份<a href=https://www.elefans.com/category/jswz/34/1769368.html style=华为或者华三路由器和交换机配置"/>

Python批量备份华为或者华三路由器和交换机配置

首先建立excel表格,填入设备相关连接信息,如图:

然后安装excel处理模块openpyxl,用于读取excel文件。安装netmiko模块用于连接交换机。
[Bash shell] 纯文本查看 复制代码

pip install openpyxl
pip install netmiko
完整代码如下,仅实现了ssh.

from netmiko import ConnectHandler
from openpyxl import load_workbook
import os
from sys import exit
#读取excel内设备列表信息
def check_and_get_dev_list(filename, sheet_name):"""filename:  为Excel文件名sheet_name: 表名从表格中逐行遍历,获取设备相关信息"""excel_information = []sheet_header = []wb = load_workbook(filename)sh = wb[sheet_name]# 获取最大行数row = sh.max_row# 获取最大列数column = sh.max_columndata = []# 获取表头写入列表中方便调用for data_1 in range(1, column+1):get_sheet_header = sh.cell(row=1, column=data_1).valuesheet_header.append(get_sheet_header)# 第一行为表头, 此处 row +1 是pyton循环时不读取最后一个数for row_1 in range(2, row + 1):# 存储一行信息sheet_data_1 = dict()# 逐行读取表中的数据for b in range(1, column + 1):cell = sh.cell(row=row_1, column=b).value# 将数据已字典形式写入 sheet_data_1 中# if cell != None:sheet_data_1[sheet_header[b-1]] = cellexcel_information.append(sheet_data_1)for i in excel_information:if i['ip'] != None:data.append(i)return data#配置批量备份导出
def cisco_ssh_confbak():# 创建备份文件夹try:path = './conf_bak'os.makedirs(path)except FileExistsError:passres = check_and_get_dev_list('./resource.xlsx', 'Sheet1')for i in res:dev = {'device_type':i['type'],'host': i['ip'],'username': i['username'],'password': i['password'],'secret': i['enpassword'],'port': i['port'],}with ConnectHandler(**dev) as conn:conn.enable()if dev['device_type'] == 'cisco_ios':output = conn.send_command(command_string='show run')elif dev['device_type'] == 'huawei' or 'hp_comware':output = conn.send_command(command_string='dis current-configuration')else:print('error')with open('./conf_bak/'+ dev['host'] +'_conf_bak.txt', mode='w', encoding='utf8') as f:print('正在备份:'+dev['host'])f.write(output)print('备份成功!')return 1
a = cisco_ssh_confbak()
print(a)

注意点:
1、[‘device_type’] == ‘huawei’ or ‘hp_comware’:
华为设备 或者华三设备
2、表格文件必须和python 文件在同一个目录下
如图所示:本例中python文件名为 wangluoshebei.py

执行后会在程序根目录生成conf_bak文件夹以及设备IP为名称的txt配置文件,执行结果如下图:

在自己电脑的本地目录(D:\pythonProject\conf_bak)下就会生成两个文件。

更多推荐

Python批量备份华为或者华三路由器和交换机配置

本文发布于:2024-03-09 11:12:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1724816.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:华为   路由器   交换机   批量   备份

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!