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写的图片蜘蛛人代码
Aug 27 Python
python实现简单的文字识别
Nov 27 Python
python调用百度地图WEB服务API获取地点对应坐标值
Jan 16 Python
详解程序意外中断自动重启shell脚本(以Python为例)
Jul 26 Python
python pyinstaller打包exe报错的解决方法
Nov 02 Python
Python for循环及基础用法详解
Nov 08 Python
Python笔记之工厂模式
Nov 20 Python
pip install 使用国内镜像的方法示例
Apr 03 Python
Eclipse配置python默认头过程图解
Apr 26 Python
Python基于当前时间批量创建文件
May 07 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 Python
Python matplotlib绘制条形统计图 处理多个实验多组观测值
Apr 21 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
linux下为php添加curl扩展的方法
2011/07/29 PHP
基于MySQL分区性能的详细介绍
2013/05/02 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
你必须知道的Javascript知识点之"深入理解作用域链"的介绍
2013/04/23 Javascript
网页防止tab键的使用快速解决方法
2013/11/07 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
Vue.use源码分析
2017/04/22 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
js实现简易ATM功能
2020/10/27 Javascript
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
python中for循环输出列表索引与对应的值方法
2018/11/07 Python
基于Python实现用户管理系统
2019/02/26 Python
python构建指数平滑预测模型示例
2019/11/21 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
瑞典首都斯德哥尔摩的多元奢侈时尚品牌:Acne Studios
2017/07/09 全球购物
什么是方法的重载
2013/06/24 面试题
大四自我鉴定范文
2013/10/06 职场文书
领导检查欢迎词
2014/01/14 职场文书
企业管理标语
2014/06/10 职场文书
学雷锋倡议书
2015/01/19 职场文书
初中教师个人工作总结
2015/02/10 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
详解nodejs内置模块
2021/05/06 NodeJs
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js
一条慢SQL语句引发的改造之路
2022/03/16 MySQL