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()
    

      

  • 相关阅读:
    服务部署 RPC vs RESTful
    模拟浏览器之从 Selenium 到splinter
    windows程序设计 vs2012 新建win32项目
    ubuntu python 安装numpy,scipy.pandas.....
    vmvare 将主机的文件复制到虚拟机系统中 安装WMware tools
    ubuntu 修改root密码
    python 定义类 简单使用
    python 定义函数 两个文件调用函数
    python 定义函数 调用函数
    python windows 安装gensim
  • 原文地址:https://www.cnblogs.com/lixinliang/p/13825539.html
Copyright © 2011-2022 走看看