zoukankan      html  css  js  c++  java
  • python 检测 nginx 服务邮件报警

    $ cat checkserver.py
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    import os
    import socket
    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    
    mail_host = "smtp.exmail.qq.com"
    mail_user = "yunwei-monitor@111.com"
    mail_pass = "yNE8dcsx"
    
    sender = 'yunwei-monitor@111.com'
    receivers = ['lixinliang@111.com']
    
    def Checkserverdown():
        #三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
        message = MIMEText('192.168.71.200 nginx is down','plain','utf-8')
        message['From'] = Header("Nginx is down ", 'utf-8') # 发送者
        message['To'] = Header("李鑫亮", 'utf-8')   # 接收者
        subject = '192.168.71.200 nginx is down'
        message['Subject'] = Header(subject,'utf-8')
        try:
            smtpobj = smtplib.SMTP()
            smtpobj.connect(mail_host,25)
            smtpobj.login(mail_user,mail_pass)
            smtpobj.sendmail(sender,receivers,message.as_string())
            print("邮件发送成功")
        except smtplib.SMTPException:
            print("Error: 无法发送邮件")
    
    def Checkserverstilldown():
        #三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
        message = MIMEText('192.168.71.200 nginx is still down','plain','utf-8')
        message['From'] = Header("Nginx is still down ", 'utf-8') # 发送者
        message['To'] = Header("李鑫亮", 'utf-8')   # 接收者
        subject = '192.168.71.200 nginx is still down'
        message['Subject'] = Header(subject,'utf-8')
        try:
            smtpobj = smtplib.SMTP()
            smtpobj.connect(mail_host,25)
            smtpobj.login(mail_user,mail_pass)
            smtpobj.sendmail(sender,receivers,message.as_string())
            print("邮件发送成功")
        except smtplib.SMTPException:
            print("Error: 无法发送邮件")
    
    def Checkserverup():
        #三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
        message = MIMEText('192.168.71.200 nginx is  up','plain','utf-8')
        message['From'] = Header("Nginx is up ", 'utf-8') # 发送者
        message['To'] = Header("李鑫亮", 'utf-8')   # 接收者
        subject = '192.168.71.200 nginx is up'
        message['Subject'] = Header(subject,'utf-8')
        try:
            smtpobj = smtplib.SMTP()
            smtpobj.connect(mail_host,25)
            smtpobj.login(mail_user,mail_pass)
            smtpobj.sendmail(sender,receivers,message.as_string())
            print("邮件发送成功")
        except smtplib.SMTPException:
            print("Error: 无法发送邮件")
    
    
    # 判断 nginx 进程输出内容来确定是否要进行进程启动
    file = "/tmp/nginx.txt"
    os.system("""ps -ef  |grep nginx  |grep -Ev "grep|vim" > %s""" % file)
    
    print (os.path.getsize(file))
    if os.path.getsize(file) == 0:
            Checkserverdown()
            os.system("/usr/sbin/nginx")
            print (os.path.getsize(file))
            os.system("""ps -ef  |grep nginx  |grep -Ev "grep|vim" > %s""" % file)
            if os.path.getsize(file) == 0:
                    Checkserverstilldown()
                    os.system("/usr/sbin/nginx")
            else:
                    Checkserverup()
    

      

  • 相关阅读:
    JS截取字符串方法实例
    Adobe Flash Builder 4.6 打开时提示Failed to create the Java Virtual Machine
    ionic 上拉菜单(ActionSheet)安装和iOS样式不一样
    Echarts柱状图百分比显示
    js替换数组中字符串实例
    jQuery获取json数据
    ionic左滑删除
    JavaScript修改日期格式
    ionic之angular1.X缓存问题解决
    angularjs1.X获取前一天日期
  • 原文地址:https://www.cnblogs.com/lixinliang/p/13825539.html
Copyright © 2011-2022 走看看