Python监控主机是否存活并以邮件报警

 更新时间:2015年09月22日 15:24:43   投稿:mrr  
本文是利用python脚本写的简单测试主机是否存活,此脚本有个缺点不适用线上,由于网络延迟、丢包现象会造成误报邮件,感兴趣的朋友一起看看Python监控主机是否存活并以邮件报警吧

利用Python写了简单测试主机是否存活脚本,此脚本不适于线上使用,因为网络延迟、丢包现象会造成误报邮件,那么后续会更新判断三次ping不通后再发报警邮件,并启用多线程处理。

#!/usr/bin/env python 
# coding:UTF-8 
import time 
import pexpect 
import smtplib 
from email.mime.text import MIMEText 
mail_host = "smtp.163.com"    #定义smtp服务器 
mail_to = "baojingtongzhi@163.com" #邮件收件人 
mail_from = "monitor@163.com"   #邮件发件人 
mail_pass = "123456"      #邮件发件人邮箱密码 
while True: 
  def Mail(error_ip): 
    date = time.strftime('%Y-%m-%d %H:%M:%S') 
    msg = MIMEText("%s Ping %s failed from 255.252." % (date, error_ip)) 
    msg['Subject'] = "Ping %s failed." % error_ip  #定义邮件主题 
    msg['From'] = mail_from 
    msg['To'] = mail_to 
    try: 
      s = smtplib.SMTP()        #创建一个SMTP()对象 
      s.connect(mail_host, "25")      #通过connect方法连接smtp主机 
      s.starttls()          #启动安全传输模式 
      s.login(mail_from,mail_pass)     #邮箱账户登录认证 
      s.sendmail(mail_from, mail_to, msg.as_string()) #邮件发送 
      s.quit()   #断开smtp连接 
    except Exception, e: 
      print str(e) 
  ip_list = ['192.168.18.10', 
    '192.168.18.11', 
    '192.168.18.12'] 
  for ip in ip_list: 
    ping = pexpect.spawn('ping -c 1 %s' % ip) 
    check = ping.expect([pexpect.TIMEOUT,"1 packets transmitted, 1 received, 0% packet loss"],2)  #2代表超时时间 
    if check == 0: 
      Mail(ip) 
      print "Ping %s failed,Have email." % ip 
    if check == 1: 
      print "Ping %s successful." % ip 
  print "Sleep 10s..."
  time.sleep(10)
#直接运行
# python ping.py 
Ping 192.168.18.10 successful.
Ping 192.168.18.11 successful.
Ping 192.168.18.12 successful.
Sleep 10s...

以上就是本文的全部内容,希望对大家学习Python监控主机是否存活并以邮件报警有所帮助。

相关文章

  • python中关于CIFAR10数据集的使用

    python中关于CIFAR10数据集的使用

    这篇文章主要介绍了python中关于CIFAR10数据集的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python使用psutil库对系统数据进行采集监控的方法

    Python使用psutil库对系统数据进行采集监控的方法

    利用psutil库可以获取系统的一些信息,如cpu,内存等使用率,从而可以查看当前系统的使用情况,实时采集这些信息可以达到实时监控系统的目的。本文给大家介绍Python psutil系统监控的相关知识,感兴趣的朋友一起看看吧
    2021-08-08
  • Python 机器学习第一章环境配置图解流程

    Python 机器学习第一章环境配置图解流程

    机器学习是一类算法的总称,这些算法企图从大量历史数据中挖掘出其中隐含的规律,并用于预测或者分类,更具体的说,机器学习可以看作是寻找一个函数,输入是样本数据,输出是期望的结果,只是这个函数过于复杂,以至于不太方便形式化表达
    2021-11-11
  • Tensorflow的可视化工具Tensorboard的初步使用详解

    Tensorflow的可视化工具Tensorboard的初步使用详解

    这篇文章主要介绍了Tensorflow的可视化工具Tensorboard的初步使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Python import模块的缓存问题解决方案

    Python import模块的缓存问题解决方案

    这篇文章主要介绍了Python import模块的缓存问题解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Python中执行MySQL结果限制和分页查询示例详解

    Python中执行MySQL结果限制和分页查询示例详解

    这篇文章主要为大家介绍了Python中执行MySQL结果限制和分页查询示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • PyCharm配置mongo插件的方法

    PyCharm配置mongo插件的方法

    今天小编就为大家分享一篇PyCharm配置mongo插件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python多进程通信Queue、Pipe、Value、Array实例

    Python多进程通信Queue、Pipe、Value、Array实例

    这篇文章主要介绍了Python多进程通信Queue、Pipe、Value、Array实例,queue和pipe用来在进程间传递消息、Value + Array 是python中共享内存映射文件的方法,需要的朋友可以参考下
    2014-11-11
  • 用python介绍4种常用的单链表翻转的方法小结

    用python介绍4种常用的单链表翻转的方法小结

    这篇文章主要介绍了用python介绍4种常用的单链表翻转的方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • python七种方法判断字符串是否包含子串

    python七种方法判断字符串是否包含子串

    这篇文章主要介绍了python七种方法判断字符串是否包含子串,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-08-08

最新评论