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 相关文章推荐
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
Nov 18 Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 Python
Python3模拟curl发送post请求操作示例
May 03 Python
Django--权限Permissions的例子
Aug 28 Python
利用Python产生加密表和解密表的实现方法
Oct 15 Python
python实现简易淘宝购物
Nov 22 Python
关于Python 常用获取元素 Driver 总结
Nov 24 Python
用python解压分析jar包实例
Jan 16 Python
解决python父线程关闭后子线程不关闭问题
Apr 25 Python
Python字符串三种格式化输出
Sep 17 Python
Python List remove()实例用法详解
Aug 02 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
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
PHP的历史和优缺点
2006/10/09 PHP
php cout<<的一点看法
2010/01/24 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
两个php日期控制类实例
2014/12/09 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
jQuery实现带动画效果的二级下拉导航方法
2015/03/11 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
python处理大日志文件
2019/07/23 Python
Python函数基本使用原理详解
2020/03/19 Python
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
长辈证婚人证婚词
2014/01/09 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
小学校长汇报材料
2014/08/20 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
写给女朋友的保证书
2015/05/09 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
校园新闻稿范文
2015/07/18 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫