python 检测nginx服务邮件报警的脚本


Posted in Python onDecember 31, 2020
$ 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服务邮件报警的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python实现的栈(Stack)
Jan 26 Python
python调用百度语音识别实现大音频文件语音识别功能
Aug 30 Python
python文件拆分与重组实例
Dec 10 Python
python 计算数据偏差和峰度的方法
Jun 29 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
Jul 04 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
python中eval与int的区别浅析
Aug 11 Python
利用Python产生加密表和解密表的实现方法
Oct 15 Python
如何基于Python创建目录文件夹
Dec 31 Python
Django Model中字段(field)的各种选项说明
May 19 Python
解决c++调用python中文乱码问题
Jul 29 Python
Django 实现图片上传和下载功能
Dec 31 #Python
Python wordcloud库安装方法总结
Dec 31 #Python
Python的信号库Blinker用法详解
Dec 31 #Python
浅析python实现动态规划背包问题
Dec 31 #Python
python中doctest库实例用法
Dec 31 #Python
Python项目打包成二进制的方法
Dec 30 #Python
Python 实现RSA加解密文本文件
Dec 30 #Python
You might like
php 什么是PEAR?(第二篇)
2009/03/19 PHP
PHP服务器页面间跳转实现方法
2012/08/02 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
thinkPHP查询方式小结
2016/01/09 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
JavaScript的jQuery库插件的简要开发指南
2015/08/12 Javascript
JS+CSS实现电子商务网站导航模板效果代码
2015/09/10 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
Vue this.$router.push(参数)实现页面跳转操作
2020/09/09 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
王纯业的Python学习笔记 下载
2007/02/10 Python
tensorflow 获取变量&打印权值的实例讲解
2018/06/14 Python
Python+pandas计算数据相关系数的实例
2018/07/03 Python
pytorch forward两个参数实例
2020/01/17 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
事业单位请假制度
2014/01/13 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
工程承包协议书
2014/04/22 职场文书
3分钟英语演讲稿
2014/04/29 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
2014年会计主管工作总结
2014/12/20 职场文书