Python telnet备份Cisco交换机配置

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


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

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

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


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


不管交换机端有没有命令先换行,进enble,有密码就发密码过去

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


初始化confComplete,然后发show run

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


通过moreFlag判断配置读取完没

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


shell测试了发现被转义了


修改被转义的字符

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


简单粗暴地弄几下把交换机名字弄出来就算了,算法好不好看啥的就不想了

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


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,841评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,926评论 6 342
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,236评论 4 16
  • 有时候我问自己,为什么会忧愁,因何而忧愁。其实,我本是个多愁善感的人,出身卑微的我因为家庭环境的影响,所以从小就沉...
    水煮o咸鱼阅读 630评论 0 0
  • --南京师太第六十七次拥抱祖国-- 人这一辈子,首先是国,然后是家,我不知道,好像是从小爱国情怀就挺...
    南京师太阅读 1,329评论 0 0