免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1740 | 回复: 3
打印 上一主题 下一主题

[网络相关] 请教一个关于路由器多命令执行(5000条左右)程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-11-04 14:45 |只看该作者 |倒序浏览
由于应用需要和设备自身限制的原因,需要telnet登录设备后,逐条命令在路由器上执行,并记录结果.
大部分结果应该是为空白的.用python或者expect都行.
之前参考过http://bbs.chinaunix.net/thread-4177907-1-1.html这个帖子的程序,但是这个是采用了多进程登陆多台设备,和我这个情况不同.我只是需要登陆一台设备,并执行多条命令.
先谢谢了!

论坛徽章:
41
操作系统版块每日发帖之星
日期:2016-08-21 06:20:00每日论坛发贴之星
日期:2016-05-05 06:20:00操作系统版块每日发帖之星
日期:2016-05-05 06:20:00IT运维版块每日发帖之星
日期:2016-05-05 06:20:0015-16赛季CBA联赛之山西
日期:2016-04-27 08:49:00操作系统版块每日发帖之星
日期:2016-04-25 06:20:00操作系统版块每日发帖之星
日期:2016-04-17 06:23:2815-16赛季CBA联赛之吉林
日期:2016-03-25 15:46:3415-16赛季CBA联赛之四川
日期:2016-03-25 14:26:19操作系统版块每日发帖之星
日期:2016-05-27 06:20:00操作系统版块每日发帖之星
日期:2016-05-28 06:20:00IT运维版块每日发帖之星
日期:2016-08-18 06:20:00
2 [报告]
发表于 2015-11-04 16:18 |只看该作者
可以的,问题是你不好判断设备输出的结果时间,,结果直接在log中查看即可,中间的那些sleep都是在等待设备输出

执行的时候执行bash xx.py >> log.log
  1. #!/usr/bin/python
  2. import telnetlib
  3. import time
  4. host='10.10.10.10'
  5. username='admin'
  6. password='huawei123'
  7. finish='(config)]#'
  8. tn=telnetlib.Telnet(host)
  9. tn.set_debuglevel(7)
  10. tn.read_until('[.login    .] Login:>')
  11. tn.write(username+'\n')
  12. tn.read_until('[.password .] Password:>')
  13. tn.write(password+'\r\n')
  14. tn.read_until('[%eSpace U1960]>')
  15. tn.write('en\r\n')
  16. tn.read_until('[.password .] Password:>')
  17. tn.write(password+'\r\n')
  18. tn.read_until('[%eSpace U1960(config)]#')
  19. tn.write('config conference cancel confid 7\n')
  20. time.sleep(5)
  21. tn.write('config conference cancel confid 6\n')
  22. time.sleep(5)
  23. tn.write('config conference cancel confid 5\n')
  24. time.sleep(5)
  25. tn.write('config conference cancel confid 4\n')
  26. time.sleep(5)
  27. tn.write('config conference cancel confid 3\n')
  28. time.sleep(5)
  29. tn.write('config conference cancel confid 2\n')
  30. time.sleep(5)
  31. tn.write('config conference cancel confid 1\n')
  32. time.sleep(5)
  33. tn.write('config conference cancel confid 0\n')
  34. time.sleep(5)
  35. tn.write('\n')
  36. tn.read_until('[%eSpace U1960(config)]#')
  37. tn.write('config conference register regnum 9 attendeepwd 111111 chairmanpwd 111111  starttime 00:05:01 endtime 23:59:59\n')
  38. time.sleep(5)
  39. tn.write('\n')
  40. tn.write('config conference addattendee confid 0 attendeedn 690\n')
  41. time.sleep(5)   
  42. tn.write('config conference register regnum 9 attendeepwd 111111 chairmanpwd 111111  starttime 00:05:01 endtime 23:59:59\n')
  43. time.sleep(5)
  44. tn.write('\n')
  45. tn.write('config conference addattendee confid 1 attendeedn 691\n')  
  46. time.sleep(5)
  47. tn.write('config conference register regnum 9 attendeepwd 111111 chairmanpwd 111111  starttime 00:05:01 endtime 23:59:59\n')
  48. tn.write('\n')
  49. time.sleep(5)
  50. tn.write('config conference addattendee confid 2 attendeedn 692\n')  
  51. time.sleep(5)
  52. tn.write('config conference register regnum 9 attendeepwd 111111 chairmanpwd 111111  starttime 00:05:01 endtime 23:59:59\n')
  53. time.sleep(5)
  54. tn.write('\n')
  55. tn.write('config conference addattendee confid 3 attendeedn 693\n')
  56. time.sleep(5)
  57. tn.write('config conference register regnum 3 attendeepwd 111111 chairmanpwd 111111  starttime 00:05:01 endtime 23:59:59\n')
  58. time.sleep(5)
  59. tn.write('\n')
  60. tn.write('config conference register regnum 3 attendeepwd 111111 chairmanpwd 111111  starttime 00:05:01 endtime 23:59:59\n')
  61. time.sleep(5)
  62. tn.write('\n')
  63. tn.write('config conference register regnum 9 attendeepwd 111111 chairmanpwd 111111  starttime 00:05:01 endtime 23:59:59\n')
  64. time.sleep(5)
  65. tn.write('\n')
  66. tn.write('config conference addattendee confid 6 attendeedn 694\n')
  67. time.sleep(5)
  68. tn.write('\n')
  69. tn.write('config conference register regnum 9 attendeepwd 111111 chairmanpwd 111111  starttime 00:05:01 endtime 23:59:59\n')
  70. time.sleep(5)
  71. tn.write('\n')
  72. tn.write('config conference addattendee confid 7 attendeedn 695\n')
  73. time.sleep(5)
  74. tn.write('\n')
  75. tn.write('\n')
  76. tn.write('\n')
  77. tn.write('\n')
  78. tn.write('\n')
  79. tn.write('\n')
  80. tn.write('\n')
  81. tn.write('\n')
  82. tn.write('\n')
  83. tn.write('\n')
  84. tn.write('\n')
  85. tn.write('\n')
  86. tn.write('\n')
  87. tn.read_until('[%eSpace U1960(config)]#')

  88. tn.close()
复制代码

论坛徽章:
0
3 [报告]
发表于 2015-11-04 16:28 |只看该作者
感谢! 不过有几个问题,log时间我是不需要的,有输出就行.由于命令本身已经已经根据正则表达式过滤,只要有输出就可以.命令基本就是 "show route xx.xx.xx.xx/xx" 这种的,但是只能一次写入一条.现在把所有命令编辑到一个文本中,如何才能逐条执行,并合并返回结果呢? 像之前说的基本大部分返回结果应该都是空白回复 2# jixuuse


   

论坛徽章:
41
操作系统版块每日发帖之星
日期:2016-08-21 06:20:00每日论坛发贴之星
日期:2016-05-05 06:20:00操作系统版块每日发帖之星
日期:2016-05-05 06:20:00IT运维版块每日发帖之星
日期:2016-05-05 06:20:0015-16赛季CBA联赛之山西
日期:2016-04-27 08:49:00操作系统版块每日发帖之星
日期:2016-04-25 06:20:00操作系统版块每日发帖之星
日期:2016-04-17 06:23:2815-16赛季CBA联赛之吉林
日期:2016-03-25 15:46:3415-16赛季CBA联赛之四川
日期:2016-03-25 14:26:19操作系统版块每日发帖之星
日期:2016-05-27 06:20:00操作系统版块每日发帖之星
日期:2016-05-28 06:20:00IT运维版块每日发帖之星
日期:2016-08-18 06:20:00
4 [报告]
发表于 2015-11-04 16:37 |只看该作者
你可以把命令做个成文本,然后for循环读取执行,循环完了就执行完了呗
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP