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

以上就是python 检测nginx服务邮件报警的脚本的详细内容,更多关于python 检测nginx服务邮件报警的资料请关注免费资源网其它相关文章!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容