当前位置:   article > 正文

Python3网络设备巡检(交换机篇)_python抓取设备信息

python抓取设备信息

介绍

只写了交换机的,路由器、防火墙、负载等其它设备以后,有需求再写,下面以一组交换机为例。

思路

1、收取交换机的信息 
需要哪些信息,哪些命令,不同品牌交换机命令不同(本篇以H3C为例),需要提前规划好。交换机的IP、名字、密码等信息,写入数据库比较方便。 
2、把需要的信息填入表格 
根据关键字提取交换机中的状态信息,并一次填入设计好的表格中,难点是字符串的截取和excel表格的设计。同款交换机相同的命令,可能用同一个关键字,抓取的信息也不一样,这个要多试几次。 
3、编写邮件,发送邮件。 
4、linux编写任务计划,crontab定期执行python代码,定期发送邮件。

代码

抓取交换机需要的配置信息

  1. import pexpect
  2. import sys
  3. import datetime
  4. import pymssql
  5. import os
  6. today=datetime.date.today().strftime('%Y%m%d')
  7. path = "/root/xunjian/"+today
  8. os.mkdir(path,777)#创建目录
  9. def Switch(name,ip,passwd):
  10. try:#try except 防止有一个命令错误,导致程序不能进行,其实不加也可以,如果有命令没输出,下一个代码也会报错。
  11. name1="---- More ----"#模拟交换机出现的翻页提示
  12. child=pexpect.spawn('telnet %s'%ip)
  13. fout=open('/root/xunjian/'+today+'/'+'%s-%s.txt'%(name,ip),'wb+')
  14. child.logfile = fout
  15. child.expect('login:')#提示用户登录,输入帐号,交换机不同,有所不同。
  16. child.sendline("admin")
  17. child.expect('(?i)ssword:')#提示输入密码
  18. child.sendline("%s"%passwd)
  19. child.expect('<%s>'%name)
  20. child.sendline("display cpu-usage")#查看cpu状态
  21. child.expect('<%s>'%name)
  22. child.sendline("display memory")#查看内存状态
  23. child.expect('<%s>'%name)
  24. child.sendline("display environment")#运行温度
  25. child.expect('<%s>'%name)
  26. child.sendline("display fan")#风扇状态,一般输出都有2
  27. child.expect('<%s>'%name)
  28. child.sendline("display power")#电源状态
  29. child.expect('<%s>'%name)
  30. child.sendline("display ip routing-table")#路由表
  31. for i in range(10):
  32. index = child.expect([name1,'<%s>'%name])
  33. if ( index == 0 ):
  34. child.send(" ")
  35. else:
  36. child.sendline("display interface brief")#端口状态
  37. break
  38. for i in range(10):
  39. index = child.expect([name1,'<%s>'%name])
  40. if ( index == 0 ):
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/156740
推荐阅读
相关标签
  

闽ICP备14008679号