python 监测主机是否alive

#!/usr/bin/env python

#-*- coding: utf-8 -*-

import sys

from threading import Thread

import subprocess

from Queue import Queue

num_threads=3

ips = [‘127.0.0.1‘,‘192.168.20.140‘]

q=Queue()

def pingme(i,queue):

while True:

ip = queue.get()

print ‘Thread %s pinging %s‘ %(i,ip)

ret = subprocess.call(‘ping -c 1 %s‘ % ip,shell=True,stdout=open(‘/dev/null‘,‘w‘),stderr=subprocess.STDOUT)

if ret == 0:

print ‘%s is alive!‘ % ip

elif ret ==1:

print ‘%s is down...‘ % ip

queue.task_done()

for i in range(num_threads):

t = Thread(target=pingme,args=(i,q))

t.setDaemon(True)

t.start()

for ip in ips:

q.put(ip)

print ‘main thread waiting..‘

q.join();print ‘done‘

显示:

main thread waiting..

Thread 0 pinging 127.0.0.1

Thread 1 pinging 192.168.20.140

192.168.20.140 is alive!

127.0.0.1 is alive!

done

时间: 2024-07-31 05:45:41

python 监测主机是否alive的相关文章

python检测主机存活端口

监测主机存活的端口 #!/usr/bin/env python # coding-utf8 import argparse import socket import sys #author: wolf_ribble def scan_ports(host,start_port,end_port):     """Scan remote hosts"""     try:         sock = socket.socket(socket.AF

python监测硬盘使用率

python获得磁盘剩余空间statvfs: >>> import os >>> import statvfs >>> vfs=os.statvfs("/home") >>> vfs (4096, 4096, 70959944, 70058799, 66396080, 73269248, 73234981, 73234981, 0, 255) >>> dir(statvfs) ['F_BAVAIL

python实现主机批量管理

在日常的运维工作中批量对主机的是很常见的,市面上也有许多主机批量管理的软件,但有时候这些软件并不能完全的满足我们的需求.python中刚好提供了关于主机批量管理的模块,今天就让我们来看看如何利用python实现主机批量管理 python提供主机批量管理的模块主要有三个paramiko.fabric与pexpect,今天我们主要说的是paramiko模块,paramiko模块是第三方模块 安装:pip install paramiko或者yum install python-paramiko如果都

Python收集主机信息

Python收集linux主机信息,需要安装dmidecode命令,yum -y install dmidecode #!/usr/bin/env python # coding=utf-8   from subprocess import Popen, PIPE   #获取ifconfig命令信息 def getIfconfig():     p = Popen(['ifconfig'], stdout=PIPE)     data = p.stdout.read().decode()    

python多主机远程操作

#!/usr/bin/python #-*-coding:utf-8-*- ''' create on 2014.12.13 @author: feifei ''' import os import sys import paramiko ips = [] def read_ip(ipfile):     try:         if os.path.isfile(ipfile):             allip = open(ipfile, 'r')             for ip

利用Python监测MySQL主从状态

探测MySQL主从状态,如果从未同步,则发邮件通知运维人员.利用定时任务秒级监测! # -*- coding: utf-8 -* #! /usr/bin/env python from fabric.api import * from fabric.colors import * from fabric.context_managers import * from fabric.contrib.console import confirm import string import smtplib

Python 得到主机字节序

使用Python可以很快得到一些系统的信息,比如平台,字节序,和Python最大递归限制,比如: import sys # get byte order print sys.byteorder # get platform print sys.platform # nothing to say ^_^ print sys.getrecursionlimit() 关于字节序可以使用以下的C代码验证: 1 #include <stdio.h> 2 3 typedef unsigned char *

linux系统使用python监测网络接口获取网络的输入输出

#!/usr/bin/env Pythonimport timeimport sys if len(sys.argv) > 1: INTERFACE = sys.argv[1]else: INTERFACE = 'eth0'STATS = []print 'Interface:',INTERFACE def rx(): ifstat = open('/proc/net/dev').readlines() for interface in  ifstat:  if INTERFACE in int

python——简单主机批量管理工具

需求: 主机分组 主机信息配置文件用configparser解析 可批量执行命令.发送文件,结果实时返回,执行格式如下  batch_run  -h h1,h2,h3   -g web_clusters,db_servers    -cmd  "df -h" batch_scp   -h h1,h2,h3   -g web_clusters,db_servers  -action put  -local test.py  -remote /tmp/ 主机用户名密码.端口可以不同 执行远