Python telnet备份Cisco交换机配置

平时老是跟同学吹比说“”人生苦短,我用python“”、“”python天下无敌“”,还说搞个脚本操作交换机好像有点方便的样子。吹了半天最近出于实习工作需要终于下定决心写下这个脚本。


Python telnet备份Cisco交换机配置_第1张图片

一开始就先写个简单点的功能好了,弄个备份配置吧。业务逻辑很简单,先telnet连上交换机,进入enable模式,然后show run把配置读取完再保存到本地就行了。

首先import要用的包,python自己有个用来做telnet操作的包telnetlib,直接用就行了,后来中间做的过程用了一些正则来处理文本,把re也import一下

telnet模块有了,先来连接交换机。直接调用telnetlib里面的Telnet()连上交换机,有用户名发用户名给交换机,没用户名就直接发密码给交换机,登录进去,返回一个对象可以存起来,方便对交换机做其他操作


Python telnet备份Cisco交换机配置_第2张图片

连上交换机要进Enable模式才能show run啊,搞一下。


Python telnet备份Cisco交换机配置_第3张图片
不管交换机端有没有命令先换行,进enble,有密码就发密码过去

行了,进了enble就可以备份配置了:


Python telnet备份Cisco交换机配置_第4张图片
初始化confComplete,然后发show run

配置总不可能一页就打完的啊,那看一下加载完没有,直接查一下拿到的msg里面还有没有--More--就知道了,有的话就是没加载完,继续加载,没有的话就把配置存下来好了。


Python telnet备份Cisco交换机配置_第5张图片
通过moreFlag判断配置读取完没

然后存之前发现了个问题,拿过来的二进制流转成字符串以后\r\n都被转义成字符串了。。所以没了空格换行的功能。。自己先弄了半天没想出来怎么回事,开shell测了一下发现原来是被转义了,简单粗暴直接用正则改过来


Python telnet备份Cisco交换机配置_第6张图片
shell测试了发现被转义了


Python telnet备份Cisco交换机配置_第7张图片
修改被转义的字符

最后啥都拿到了,就保存一下吧,用正则匹配出交换机的名字,然后生成一个文件名这个名字的txt来保存好了


Python telnet备份Cisco交换机配置_第8张图片
简单粗暴地弄几下把交换机名字弄出来就算了,算法好不好看啥的就不想了

 因为真实环境弄的,测试结果就不放了,别的功能啊用户体验啥的话就以后慢慢完善好了,有兴趣的话自己弄一个玩啊。


Python telnet备份Cisco交换机配置_第9张图片

你可能感兴趣的:(Python telnet备份Cisco交换机配置)