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

      

  • 相关阅读:
    Exp4 恶意代码分析 Week6
    Exp3 免杀原理与实践 Week5
    Exp2 后门原理与实践 Week4
    Exp1 PC平台逆向破解 Week3
    Exp0 Kali安装 Week1
    2018-2019-2 《网络对抗技术》Exp9 WebGoat 20165326
    2018-2019-2 《网络对抗技术》Exp8 Web基础 20165326
    2018-2019-2 《网络对抗技术》Exp7 网络欺诈防范 20165326
    2018-2019-2 《网络对抗技术》Exp6 信息搜集与漏洞扫描 20165326
    2018-2019-2 《网络对抗技术》Exp5 MSF基础应用 20165326
  • 原文地址:https://www.cnblogs.com/lixinliang/p/13825539.html
Copyright © 2011-2022 走看看