用python实现的一个简单的网络检测程序

最近由于服务器托管中心频繁出现网络故障问题,因此写了一简单的py程序,用于检测网络状态。实现的原理相当简单,运行ping命令发送30个数据包,如果超过30%的丢失,则认为故障发生,然后做故障处理,如写日志,发邮件。主要函数


import os
def monitoring(server_ip):
cmd = "ping -c 30 %s" % server_ip
p = os.popen(cmd)
info = p.read()
p.close()
re_lost_str = '(\d+)% packet loss'
lost_packet = int(self.re.search(re_lost_str, info).group(1)) #获得丢失包数据
if lost_packet > 30:
deal_error(info) #故障处理函数


这里需要注意的是丢失包的获取,我的系统运行ping命令返回的结果是...[color=red]30% packet loss[/color],所以我的正则表达式是'(\d+)% packet loss',而有的返回结果为...[color=red]30.0% packet loss[/color],则表达式要改变下。

deal_error为处理函数,将info写于日志文件,并发送邮件

由于本人还在py初步学习中,如果有更好的方法实现,请指教,谢谢了! :D
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值