利用python实现备份网络设备配置的几种选择

目录

1、命令交互方式show配置信息

2、利用设备的tftp命令发送本机配置文件到服务器

3、网络设备开启FTP服务,远程下载配置文件


自动化备份网络设备配置是比较实用的功能,网上很多文章都有涉及,这里整理一下自己搜索到的相关实现方法,用于整理记录。

1、命令交互方式show配置信息

利用telnet、ssh方式登录设备,利用网络设备自身的show或display命令显示配置信息,并抓取。这种方式比较通用,只要网络设备开启telnet或ssh即可实现。这里有一个问题,配置信息一屏显示不下,需要分屏显示,一般可以用命令取消分屏,或者自行判断分屏提示符。可以参考的实现有:

https://www.conum.cn/program/python/230.html

这个文章比较全面,利用pexpect模块调用本地telnet程序访问设备,判断是否存在分屏提示符“more”字样来抓取完整配置信息。

https://zhuanlan.zhihu.com/p/35038770

https://blog.51cto.com/chier11/2398299

https://blog.51cto.com/yanconggod/2149603

https://blog.csdn.net/epubit17/article/details/105657115

上述文章利用NetMiko模块,实现ssh交互,这个模块实现了网络设备的一些通用交互命令,避免了第一个参考文章中自行判断是否分屏的问题,推荐采用此模块。

https://zhuanlan.zhihu.com/p/143262739

这个文章非常好的说到了NetMiko的异步版本netdev模块。

https://blog.51cto.com/jackor/2134717

这个文章利用telnetlib模块,实现telnet交互。还可以尝试利用支持协程的telnetlib3模块。

2、利用设备的tftp命令发送本机配置文件到服务器

对自身支持ftp或tftp客户端命令的网络设备,可以利用telnet或ssh方式登录网络设备,在设备执行tftp或ftp命令,把配置文件直接发送到指定服务器上。这种方式避免了show和display命令的一些不便捷性,而且效率更高。可以参考的实现有:

https://blog.51cto.com/wcc127/2406932

https://blog.csdn.net/luoz_java/article/details/105392168

上面文章利用了paramiko模块,这个模块实现了ssh客户端和sftp功能。交互时利用tftp发送startup.cfg文件到指定服务器上,实现配置文件备份。另外还有AsyncSSH这个模块支持异步的SSH客户端,可以尝试。

3、网络设备开启FTP服务,远程下载配置文件

网络设备自己开启ftp服务器功能,直接ftp登录设备下载配置文件,这种方式不方便,需要所有网络设备开启ftp服务器功能很麻烦,另外也不是所有网络设备都支持开启ftp服务。可以参考的实现有:

https://blog.51cto.com/11555417/2408654

这个文章实现完整度比较高,利用ftplib模块,登录开启ftp服务的交换机上,下载配置文件。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值