python自动测试网络通断_Python实现检测服务器是否可以ping通的2种方法

本文介绍了两种使用Python检测服务器是否可以ping通的方法。第一种方法是通过调用shell脚本ping,适用于少量服务器;第二种方法利用fping命令,适合大规模服务器的批量检测,速度更快。这两种方法都可以结合数据库操作更新服务器状态。
摘要由CSDN通过智能技术生成

好想在2014结束前再赶出个10篇博文来,~(>_

python检测服务器是否ping通的2种方法

1、第一种比较挫,就是用ping,python调用shell,这个适用于较少的服务器数量,几百台已经很慢了(当然是说python同步的方法,要是nodejs异步方式还是很快的,但是nodejs CPU计算不行,所以尝试了下只能200台左右的服务器可以同时ping,再多的话程序也会崩掉)

shell脚本再简单不过了,ping.sh如下:

#!/bin/bash

PING=`ping -c 3 $1 | grep '0 received' | wc -l`

echo $PING

其实很简单,ping 3个包,只要ping通,上述返回的结果就不是0。$1是传入的第一个参数,即IP

思路很简单的,从数据库读出IP 列表,然后调用上述脚本:

#检查ip能否ping通

#0:正常,1:ping不通

def check_ip_ping():

record = get_ip() #从数据库中读取的IP列表

for i in range(0,len(record)):

p = subprocess.Popen([r'./ping.sh',record[i]],stdout=subprocess.PIPE)

result = p.stdout.read()

Status = 0

if result =='1\n'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值