`
ice_cube
  • 浏览: 24163 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

用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命令返回的结果是...30% packet loss,所以我的正则表达式是'(\d+)% packet loss',而有的返回结果为...30.0% packet loss,则表达式要改变下。

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

由于本人还在py初步学习中,如果有更好的方法实现,请指教,谢谢了! 



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics