Chinaunix首页 | 论坛 | 博客
  • 博客访问: 239383
  • 博文数量: 49
  • 博客积分: 246
  • 博客等级: 二等列兵
  • 技术积分: 1034
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-02 13:18
文章分类

全部博文(49)

分类: 系统运维

2015-07-14 12:00:46


点击(此处)折叠或打开

  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-

  3. import os
  4. import threading
  5. import Queue

  6. queue = Queue.Queue()
  7. _thread = 150

  8. f = open('ip.list','r')
  9. for ip in f.readlines():
  10.     k = ip.strip()
  11.     queue.put(k)
  12. f.close()

  13. def check(i,q):
  14.         while True:
  15.                 ip=q.get()
  16.                 data = os.system("ping -c 1 %s > /dev/null 2>&1" % ip)
  17.                 if data==0:
  18.                         print "%s: running ok\n" % ip
  19.                 else:
  20.                         print "%s: running no\n" % ip
  21.                 q.task_done() #表示queue.join()已完成队列中提取元组数据
  22. for i in range(_thread):
  23.         run=threading.Thread(target=check,args=(i,queue)) #创建一个threading.Thread()的实例,给它一个函数和函数的参数
  24.         run.setDaemon(True)#这个True是为worker.start设置的,如果没有设置的话会挂起的,因为check是使用循环实现的
  25.         run.start()
  26. queue.join()#线程队列执行关闭
  27. print "ping task running done."


阅读(2614) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~