用python 自动化实现网络设备的配置备份

将网络设备的配置做备份是网络运维中必不可少的一项工作,根据公司规模和要求不同,管理层可能会要求对网络设备的配置做月备,周备甚至日备。

传统的备份网络交换机配置的办法是手动远程登陆设备,然后输入display current-configuration,将回显内容手动复制到文本文件上,效率十分低下,在成百上千台设备需要备份的网络中尤为明显。

接下来我将会使用python 自动化实现华为交换机的配置备份,备份到FTP服务器上

云配置

请添加图片描述

云的配置是为了让主机能与交换机互相访问

拓扑

请添加图片描述

目的

使用python 自动化实现华为交换机的配置备份,备份到FTP服务器上

当我们的设备如果足够多的时候,我们可以使用文本文档的方式进行远程登陆,让python遍历我们的文档中的IP地址,实施自动化登陆

我们的python文件建议跟文本文件放在同一文件夹
    
    
ip_list:
192.168.56.10
192.168.56.11
192.168.56.12

交换机配置

aaa
 local-user admin password cipher Huawei@123   //创建python用户,密码为123
 local-user admin privilege level 15
 local-user admin service-type ssh
#
user-interface vty 0 4
 authentication-mode aaa
 protocol inbound ssh
#
stelnet server enable
ssh user admin authentication-type all
ssh user admin service-type all
ssh client first-time enable

这个时候我们就能与交换机互访,并SSH登陆了

FTP服务器配置

我使用的是ensp 的交换机作为本次实验的FTP服务器,现网中有专门的FTP服务器

ftp server enable
#
aaa
	local-user admin1234 password irreversible-cipher Helloworld@6789
	local-user admin1234 privilege level 15	
	local-user admin1234 service-type ftp
	local-user admin1234 ftp-directory flash:/

代码

import time  # 导入时间模块

import paramiko  # 导入paramiko模块

username = input("Username: ")  # 获取用户名输入
password = input("Password: ")  # 获取密码输入

f = open("ip_list.txt")  # 打开存储IP地址清单的文件

for idx, line in enumerate(f.readlines(), start=1):  # 遍历文件中的每一行IP地址
    ip = line.strip()  # 去除行尾的换行符,获取IP地址
    ssh_client = paramiko.SSHClient()  # 创建SSH客户端实例
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 设置自动添加主机密钥
    ssh_client.connect(hostname=ip, username=username, password=password, look_for_keys=False)  # 连接SSH客户端到交换机
    print("Successfully connect to ", ip)  # 打印连接成功的消息
    command = ssh_client.invoke_shell()  # 开启交互式Shell
    command.send(b"screen-length 0 temporary\n")  # 发送命令,设置交换机临时显示长度
    command.send(b"save\n")  # 发送保存命令
    command.send(b"Y\n")  # 确认保存配置
    command.send(b"ftp 192.168.56.4\n")  # 连接FTP服务器
    command.send(b"admin\n")  # 发送FTP用户名
    command.send(b"Huawei@123\n")  # 发送FTP密码
    command.send(b"binary\n")  # 设置传输模式为二进制
    command.send(f"put vrpcfg.zip SW{idx}\n".encode('utf-8'))  # 上传备份文件到FTP服务器并以不同的索引命名
    print(f"Upload SW{idx} successful")  # 打印上传成功的消息
    command.send(b"q\n")  # 退出FTP
    time.sleep(2)  # 等待2秒,确保交互命令执行完成
    output = command.recv(65535)  # 接收命令的输出结果
    print(output.decode('ascii'))  # 打印输出结果

    ssh_client.close()  # 关闭SSH连接

f.close()  # 关闭文件

结果

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 29
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
运维(Operations & Maintenance,简称O&M)是IT行业中至关重要的角色,负责确保信息系统和服务的高效稳定运行。运维工程师的工作涵盖了系统架构搭建、维护、优化,以及故障排查与解决等多个方面。 首先,运维工作包括基础设施的部署与配置,如服务器、网络设备、存储设备等硬件资源的安装调试与监控,同时还需要安装操作系统、数据库和其他应用软件,并进行性能调优以满足业务需求。 其次,运维人员承担着日常监控与安全管理任务,他们借助各类工具持续监控系统的运行状态,及时发现并处理异常情况,预防服务中断。此外,运维还包括制定备份恢复策略,确保数据的安全性和可用性,以及实施网络安全策略,防止黑客攻击、病毒感染等安全风险。 再者,运维团队还需参与系统升级、扩容等工作,以应对业务增长带来的挑战。他们通过对资源的合理调度与规划,保证系统性能和用户体验的不断提升。 最后,运维工程师还涉及自动化运维体系的建设和完善,通过脚本编写、配置管理工具的运用,实现批量部署、自动巡检、故障自愈等功能,从而提升运维效率,减轻人工压力。 总之,运维工作的核心目标在于保障业务的连续性和稳定性,为用户提供优质、高效的服务环境,同时紧跟技术发展步伐,不断推动运维工作的智能化、自动化进程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

datacom_chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值