打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
轻松搞定!Python脚本实现华为设备配置自动备份

在网络设备管理中,定期备份设备配置是一项至关重要的任务。这样做不仅可以保障网络的稳定性和安全性,还能够在设备出现故障时快速恢复服务。对于华为设备的运维人员来说,利用Python脚本实现自动备份设备配置将会极大地简化工作流程,本文将介绍如何轻松搞定这一任务。

为什么需要自动备份?

定期备份设备配置是网络管理中的基本操作之一。在日常运维中,设备的配置可能会因为误操作、设备故障或者安全事件而丢失或损坏,因此备份配置可以帮助我们快速恢复服务。此外,备份也是审计和故障诊断的重要依据,可以帮助我们了解设备配置的变更历史和恢复先前状态。

演示环境搭建

拓扑结构
  • 将本地电脑和ENSP的设备进行交接,桥接配置如下图所示:
  • 配置交换机的IP地址,关键配置如下:
<X_T1_AGG1>system-view immediately 
[X_T1_AGG1]sysname X_T1_AGG1
[X_T1_AGG1]interface Vlanif 1
[X_T1_AGG1-Vlanif1]ip add 192.168.56.10 24
[X_T1_AGG1-Vlanif1]q
[X_T1_AGG1]interface g1/0/0
[X_T1_AGG1-GE1/0/0]undo shutdown
  • 测试本机与CE设备的连通性,通过ping命令测试,如下图:
  • 配置CE设备SSH远程登录,创建SSH登录账号,并设置权限,具体配置如下:
[X_T1_AGG1-aaa]local-user dev_user password cipher Huawei@123
Info: A new user is added.
[X_T1_AGG1-aaa]local-user dev_user service-type ssh
[X_T1_AGG1-aaa]local-user dev_user level 3
[X_T1_AGG1-aaa]undo local-user policy security-enhance // 禁止第一次登录修改密码策略
[X_T1_AGG1-aaa]undo local-user policy password change // 禁止第一次登录修改密码策略
[X_T1_AGG1-aaa]q
  • 在CE设备上配置SSH用户的认知方式和服务类型:
[X_T1_AGG1]ssh user dev_user 
Info: Succeeded in adding a new SSH user.
[X_T1_AGG1]ssh user dev_user authentication-type password
[X_T1_AGG1]ssh user dev_user service-type stelnet sftp
  • 配置VTY用于登录方式,及开启stelent服务
[X_T1_AGG1]stelnet server enable 
Info: Succeeded in starting the STelnet server.
[X_T1_AGG1]sftp server enable
Info: Succeeded in starting the SFTP server.
[X_T1_AGG1]sftp server default-directory cfcard: #设置SFTP登录的根目录
[X_T1_AGG1]user-interface vty 0 4
[X_T1_AGG1-ui-vty0-4]authentication-mode aaa
[X_T1_AGG1-ui-vty0-4]protocol inbound all
[X_T1_AGG1-ui-vty0-4]user privilege level 3
  • 测试SSH是否正常登录。如下图展示,SSH成功登录。

使用Python自动备份华为设备配置

1. 安装必要的库

首先,我们需要安装Python的SSH库,例如paramiko,以便与设备建立SSH连接并执行命令。

pip install paramiko

2. 编写Python脚本

  • 这段代码是一个用于操作Datacom设备的Python类,其中包含了一些方法来执行命令、下载配置文件等操作。
from paramiko import SSHClient, AutoAddPolicy
import schedule
from datetime import datetime
from time import sleep
from loguru import logger

class Datacom():
def __init__(self, server, username, password):
self.server = server
self.username = username
self.password = password

self.client = self._get_client()
self.cli = self.client.invoke_shell()
self.cli.send('screen-length 0 temporary\n')
sleep(5)
self.cli.recv(999999)

def _get_client(self):
client = SSHClient()
client.set_missing_host_key_policy(AutoAddPolicy)
client.connect(self.server, username=self.username, password=self.password,look_for_keys=False)
return client

def command(self, cmd):
self.cli.send("{}\n".format(cmd))
sleep(5)
return self.cli.recv(999999).decode()

def download_config(self, target, config_path='/vrpcfg.cfg'):
logger.info("copy config file with sftp-------------------") # 打印提示信息
another_client = self._get_client() # 创建另一个SSH连接客户端
sftp = another_client.open_sftp() # 打开SFTP会话
sftp.get(config_path, target) # 下载配置文件到本地路径
another_client.close() # 关闭SSH连接

def close(self):
self.client.close()

Datacom这个类中的download_config方法中,接收两个参数,target是保存配置到本地那里,config_path是网络设备配置文件的路径,通常通过dir查看。

  • 定义一个方法实例化上述的类,调用download_config实现备份配置文件。
def backup_conf(device_ip,username,password,device_name):
datacom = Datacom(device_ip,username,password) #实例化Datacom
last_downloadtime = datetime.now()
datacom.download_config('{}_{}_{}_{}.zip'.format(
last_downloadtime.year,
last_downloadtime.month,
last_downloadtime.day,
device_name
)) #调用download_config方法实现备份
logger.info("backup config success")
datacom.close()
  • 定义相关变量调用backup_conf方法。
if __name__ == "__main__":
device_ip = "192.168.56.10" #
username = "dev_user"
password = "Huawei@123"
device_name = "X_T1_AGG1
schedule.every(5).minutes.do(backup_conf,device_ip,username,password,device_name)
while True:
schedule.run_pending()

上述的代码every(5)中的5表示是每隔5分钟执行一次。

3. 运行脚本

将以上代码保存为backup_huawei_config.py文件,然后在命令行中运行该脚本,即可实现自动备份华为设备配置。

python backup_huawei_config.py

执行上述的代码会出现如下的结果,如下图:

结语

通过以上简单的Python脚本,我们可以轻松实现华为设备配置的自动备份。这样的自动化操作不仅能够提高运维效率,还能够减少手工操作的错误,确保了网络设备配置的安全性和一致性。让我们把更多的精力投入到网络优化和故障排除中,让网络管理变得更加高效和可靠!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
有了它再多的网络设备需要备份都不怕,你值得拥有
SFTP使用JSCH库链接不断开解决方法
How to install a sftp server on a Windows 2000 or XP
python3写的简单本地文件上传服务器
Python模块学习之远程控制模块--Paramiko
Gitlab备份到windows、在Linux恢复
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服