Python telnet备份Cisco交换机配置

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

《Python telnet备份Cisco交换机配置》

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

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

《Python telnet备份Cisco交换机配置》

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

《Python telnet备份Cisco交换机配置》

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

《Python telnet备份Cisco交换机配置》 不管交换机端有没有命令先换行,进enble,有密码就发密码过去

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

《Python telnet备份Cisco交换机配置》 初始化confComplete,然后发show run

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

《Python telnet备份Cisco交换机配置》 通过moreFlag判断配置读取完没

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

《Python telnet备份Cisco交换机配置》 shell测试了发现被转义了

《Python telnet备份Cisco交换机配置》 修改被转义的字符

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

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

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

《Python telnet备份Cisco交换机配置》

    原文作者:CHJ_b064
    原文地址: https://www.jianshu.com/p/0db784257447
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞