在前段时间分享过一篇关于《自动化网络巡检脚本》,是采用python编写的通过ssh或者telnet自动获取网络设备的某些信息。今天,在此基础上进行扩展,实现网络配置文件备份的功能。
实现思路
网络配置文件可以通过执行display current-configuration all获取,然后再把输出结果保存,这是一种比较常用的方式,今天通过另外一种方式保存配置文件。通过执行display startup,可以查看到该设备运行的是那个配置文件,如下图
![d54ab5f08c3a7f31c24e380abcb6b8ae.png](https://img-blog.csdnimg.cn/img_convert/d54ab5f08c3a7f31c24e380abcb6b8ae.png)
从上图看到这个网络设备运行的配置文件是在flash:/vrpcfg.zip。只要我们把这个文件保存下来就实现了网络配置备份了。至于把这个文件备份到哪里,可以根据自己的需求而定,比如,可以备份到内部的FTP中,也可以把配置文件备份到百度云上。其实,归根结底是实现如何把vrpcfg这个配置文件上传到FTP中。
实现过程
1、配置FTP服务器
FTP服务器可以采用一键部署的软件或者采用linux部署的方式,FTP主要用于保存网络配置文件用。这里,演示采用一键部署的FTP方式(FTPserver.exe)
2、编写python脚本把配件文件上传到FTP中。
2.1、登录FTP服务器关键代码
def login_ftp(telnetsession,password_prompt):
telnetsession.write("ftp 192.168.1.1") #ftp服务器IP
time.sleep(1.5)
telnetsession.read_until("(none)):")
telnetsession.write("admin") #ftp用户名
time.sleep(1.5)
telnetsession.read_until(password_prompt)
telnetsession.write("nomore532") #ftp用户名和密码
time.sleep(1.5)
telnetsession.read_until("[ftp]")
telnetsession.write("cd "+ time2 +"")
telnetsession.read_until("[ftp]")
2.2、上传关键代码如下:
telnetsession.write("")
telnetsession.read_until(_UsermodTag)
login_ftp(telnetsession,password_prompt)
telnetsession.write("put vrpcfg-1n.cfg %s" %Host+'_'+time2+"_vrpcfg-1n.cfg" + "")
telnetsession.read_until('[ftp]')
以上代码是把 vrpcfg-1n.cfg上传到FTP服务中。我这里采用的定时任务,每周五执行备份。如下图
![b8f21de4a021030e996dfdfbc793182c.png](https://img-blog.csdnimg.cn/img_convert/b8f21de4a021030e996dfdfbc793182c.png)
最终的实现效果如上图,把你需要备份的网络设备文件上传到以日期命名的文件夹上。
完整的备份脚本请关注并私信回复“备份”回复获取