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

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


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

#!/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:

            = 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...

时间: 2024-12-26 10:37:55

Python监控主机是否存活,并发报警邮件的相关文章

Shell脚本Ping监控主机是否存活并发邮件报警(三种方法)

#前提已经可以通过mail或mutt客户端发邮件 1.先安装sendmail来发邮件 1 2 3   # yum -y install sendmail   # /etc/init.d/sendmail start   # chkconfig sendmail on 2.再安装邮件客户端 1    # yum -y install mutt   2.1 为了更好在邮件中显示,设置mutt客户端发送信息 1 2 3 4 5 6 7   # vim /etc/Muttrc   set charset

python 添加用户设置密码并发邮件给root用户_python

#!/usr/bin/env python #coding: utf8 import os import sys import mkpasswd //这是之前写的,直接调用 import string content = """username: ${user} password: ${password}""" t = string.Template(content) def adduser(username, pwd): os.system(&

生产环境Shell脚本Ping监控主机是否存活(多种方法)

在网上针对shell脚本ping监控主机是否存活的文档很多,但大多都是ping一次就决定了状态,误报率会很高,为了精确判断,ping三次不通再发告警,只要一次ping通则正常.于是,今天中午抽出点时间总结了下面脚本. 脚本功能:通过Ping命令监控主机是否存活,如果ping失败则继续ping,三次不通就认为主机宕机或网络有问题,这时就可以发送邮件告警了. 方法1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/bin/bash

360向存在该漏洞的网站发送报警邮件及修复建议

4月13日消息,日前乌云漏洞报告平台爆料称,ThinkPHP框架存在"URI取值任意代码执行"漏洞(详情),黑客可借此在网站上执行任意PHP代码,甚至获取服务器管理员权限,同在此服务器上的其他网站也可能受到牵连.对此,360网站安全检测平台第一时间加入检测规则,并向存在该漏洞的网站发送了报警邮件及修复建议. 360网站安全检测平台服务网址 ThinkPHP是一款拥有6年历史的优秀开源PHP框架,自2006年诞生以来,应用者逐渐遍及电子商务.教育培训.金融.政府等多个领域,包括大型门户网

【Python爬虫4】并发并行下载

1一百万个网站 1用普通方法解析Alexa列表 2复用爬虫代码解析Alexa列表 2串行爬虫 3并发并行爬虫 0并发并行工作原理 1多线程爬虫 2多进程爬虫 4性能对比 这篇将介绍使用多线程和多进程这两种方式并发并行下载网页,并将它们与串行下载的性能进行比较. 1一百万个网站 亚马逊子公司Alexa提供了最受欢迎的100万个网站列表(http://www.alexa.com/topsites ),我们也可以通过http://s3.amazonaws.com/alexa-static/top-1m

备库报警邮件的分析案例(二)

在第一篇中分享了关于备库报警邮件的分析,发现很多问题都是一环扣一环. 起初是通过监控主库中的v$dataguard_status发现备库中可能存在一些问题,结果逐步分析,发现是由备库的crontab触发了备库的定时read-only和online状态,(即只读和应用日志,10gR2的环境),而这些关键信息都是从数据库的alert日志中发现的,但是问题还没有完,才刚刚开始,因为发现备库中竟然有ORA-1652: unable to extend temp segment by 128 in tab

由报警邮件分析发现的备库oracle bug

昨天到公司之后,收到两份封报警邮件,可以看到在早晨6:30左右主库的v$dataguard_status检查时发现了一个错误.然后再2分钟后就自动恢复了. 一般这种问题很自然想到可能是网络出现了一些问题.因为自动恢复了,所以也不同太着急处理,于是细细看了下.报警邮件如下: ZABBIX-监控系统: ------------------------------------ 报警内容: DG_issue ------------------------------------ 报警级别: PROBL

一条看似平常的报警邮件所做的分析

今天留意到一封报警邮件.内容如下: ZABBIX-监控系统: ------------------------------------ 报警内容: CPU utilization is too high ------------------------------------ 报警级别: PROBLEM ------------------------------------ 监控项目: CPU idle time:45.92 % --------------------------------

一封备库报警邮件的分析

对于orabbix报出的警报,自己都是心怀敬畏,因为这些表面的现象如果深入分析没准就能有所收获,当然目的还是解决问题,不是一味追求指标. 今天收到的报警邮件如下,然后在两分钟后问题自动恢复. ### ZABBIX-监控系统: ------------------------------------ 报警内容: DG_issue ------------------------------------ 报警级别: PROBLEM ----------------------------------