0
点赞
收藏
分享

微信扫一扫

网络工程师的Python之路-paramiko实验6,FTP推送备份文件,ENSP

今天来谈谈一个我自己觉得比较实用的设备配置备份方式吧。我们用paramiko登录待备份的网元,之后网元FTP到一台服务器上,把自己配置文件传送到这台FTP服务器上。这种方式的优势在于备份网元无需任何额外设置即可实现文件传递


实验拓扑

【SSH客户端】Win10 虚拟网卡,IP 为 192.168.11.2/24,桥接到云彩,Python所在。备份操作时做FTP服务端。

【透明交换机】SW1(启动即可,无需配置,给云彩扩展端口使用)。

【SSH 服务端】L3Sx,vlanif 1 的 IP 为 192.168.11.1x/24。备份操作时做FTP客户端。

注:交换机型号是S5700。

网络工程师的Python之路-paramiko实验6,FTP推送备份文件,ENSP_python

实验背景

日常较多的备份方式有两种:

① 登录设备执行display cur,然后抓取回显,保存成配置文件。

② FTP/SCP等方式登录网元,拷贝配置文件 flash:/vrpcfg.zip。

方法①效率较低;

方法②需要每台网元都开启FTP服务器功能,安全性不高。

打破下惯性思维,我们能不能把方法②的客户端和服务器角色给反过来呢?这样不就只需一台服务器开启FTP server功能。待备份的网元都当FTP客户端角色即可,无需任何额外配置。

网络工程师的Python之路-paramiko实验6,FTP推送备份文件,ENSP_python_02

梳理一下FTP服务器信息:

1、地址:192.168.11.2,网元的备份文件推送到这台设备,即WIN10真机,python所在。

2、目录:C:\Users\lidong\Desktop\lab6\

4、FTP密钥:123456

第 2 步,手工测试FTP推送备份文件

我们登上L3S1(192.168.11.11),从网元手工登录ftp服务器

(192.168.11.2),执行一次备份文件推送。

ftp 192.168.11.2
python
123456
put vrpcfg.zip 192.168.11.11_vrpcfg.zip
quit

网络工程师的Python之路-paramiko实验6,FTP推送备份文件,ENSP_ftp服务器_03

至此,我们实验目的(1)完成。

第 3 步,创建Python脚本文件

我准备了如下的python代码。这里强调下,这实验我们主要是讨论FTP推送备份文件,因此,我把代码最简化,去掉了try-expect,设备表文件,指令表文件,交互输入用户名密钥等功能。大家在实际生产中需要配套上其它功能代码块,方能更好的适配生产环境。其它功能块大家可查阅paramiko前序几篇文章。

import paramiko

import time


username = 'python'

password = '123'


iplist = ['192.168.11.11','192.168.11.12','192.168.11.13','192.168.11.14','192.168.11.15']


for ip in iplist:


   ssh_client = paramiko.SSHClient()

   ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

   ssh_client.connect(hostname=ip,username=username,password=password,look_for_keys=False)


   print('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=')

   print('已经成功登录交换机' + ip)

   command = ssh_client.invoke_shell()


   command.send('ftp 192.168.11.2\n')

   time.sleep(0.5)

   command.send('python\n')

   time.sleep(0.5)

   command.send('123456\n')

   time.sleep(0.5)

   command.send('bin\n')

   command.send('put vrpcfg.zip '+ip+'_vrpcfg.zip'+'\n')

   time.sleep(0.5)

   command.send('quit\n')

   time.sleep(0.5)


   output = command.recv(65535).decode('GB2312')

   print(output)


ssh_client.close()

网络工程师的Python之路-paramiko实验6,FTP推送备份文件,ENSP_配置文件_04

第 4 步,运行Python脚本

先清空一下backup文件夹,运行脚本,截图如下。

网络工程师的Python之路-paramiko实验6,FTP推送备份文件,ENSP_python_05

我们打开任意一个vrpcfg.zip文件看看,其实就是网元配置文件。

网络工程师的Python之路-paramiko实验6,FTP推送备份文件,ENSP_配置文件_06

举报

相关推荐

网络工程师的悲哀

0 条评论