Python多线程ping检测机器存活(windows版)

简介:

由于日常工作经常要回收开发商用完的服务器,之前是用nmap检测开发商有没有关机的,感觉挺麻烦的,今天拿python写了一个脚本专门对付回收服务器的:

原理:把准备回收的机器写入hosts.txt文件里,python脚本读取hosts.txt文件的内容,匹配出里面的ip,然后通过ping测试服务器是否没关机


 
 
  1. #!/usr/bin/env python 
  2.  
  3. from threading import Thread 
  4. import subprocess 
  5. from Queue import Queue 
  6. import re 
  7. import sys 
  8.  
  9. num_threads = 10 
  10. queue = Queue() 
  11.  
  12. def pinger(i,q): 
  13.     while True
  14.         ip = q.get() 
  15.         ret = subprocess.call("ping -n 1 %s" % ip, shell=True, stdout=open(r'ping.temp','w'), stderr=subprocess.STDOUT) 
  16.         if ret == 0
  17.             print "%s: is alive" % ip 
  18.         else
  19.             print "%s is down" % ip 
  20.         q.task_done() 
  21.  
  22. for i in range(num_threads): 
  23.     worker = Thread(target=pinger, args=(i, queue)) 
  24.     worker.setDaemon(True
  25.     worker.start() 
  26.      
  27.  
  28. host_file = open(r'hosts.txt','r'
  29. ips = [] 
  30. re_obj = re.compile(r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
  31. for line in host_file: 
  32.     for match in re_obj.findall(line): 
  33.         ips.append(match) 
  34. host_file.close() 
  35.  
  36.  
  37. for ip in ips: 
  38.     queue.put(ip) 
  39.      
  40. print "Main Thread Waiting" 
  41. queue.join() 
  42. print "Done" 
  43.  
  44. result = raw_input("Please press any key to exit"
  45. if result: 
  46.     sys.exit(0

效果图如下:

适合自己的需求,高手就路过吧~

本文转自运维笔记博客51CTO博客,原文链接http://blog.51cto.com/lihuipeng/924890如需转载请自行联系原作者


lihuipeng

相关文章
|
存储 Cloud Native Linux
windows检测进程是否存在?强制杀死进程
windows检测进程是否存在?强制杀死进程
|
Linux 异构计算 Windows
Windows操作系统:指定网卡ping连通性
某些时候,板卡上留有两个及以上万兆网口,在没有其他FPGA板卡或者只是想测一下网口或者万兆光模块的通路时,可以通过回环互ping来验证下连通性
3682 0
|
2月前
|
运维 网络安全 虚拟化
Windows系统镜像检测修复建议
Windows系统镜像检测修复建议
|
3月前
|
Windows
08-02-19>pe_xscan 增加Windows启动模式和对SuperHidden值检测和报告
08-02-19>pe_xscan 增加Windows启动模式和对SuperHidden值检测和报告
|
5月前
|
Java
线程池如何保证核心线程一直存活
线程池如何保证核心线程一直存活
100 15
|
7月前
|
监控 Shell
生产环境Shell脚本Ping监控主机是否存活(多种方法)
生产环境Shell脚本Ping监控主机是否存活(多种方法)
|
7月前
|
前端开发 Java Maven
java集成opencv(不踩坑),实现人脸检测小demo(含上传人像图片识别接口),windows,IDEA,Springboot
java集成opencv(不踩坑),实现人脸检测小demo(含上传人像图片识别接口),windows,IDEA,Springboot
1078 0
|
7月前
|
Java 调度
多线程与并发编程【线程休眠、线程让步、线程联合、判断线程是否存活】(二)-全面详解(学习总结---从入门到深化)
多线程与并发编程【线程休眠、线程让步、线程联合、判断线程是否存活】(二)-全面详解(学习总结---从入门到深化)
58 1
|
7月前
|
安全 Windows
【解决】Windows 11检测提示电脑不支持 TPM 2.0(注意从DTPM改为PTT)
【解决】Windows 11检测提示电脑不支持 TPM 2.0(注意从DTPM改为PTT)
866 0
|
关系型数据库 MySQL 网络安全
新建的windows服务器不能ping通?因为没有关闭防火墙
新建的windows服务器不能ping通?因为没有关闭防火墙