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中wx将图标显示在右下角的脚本代码
Mar 08 Python
python GUI实例学习
Nov 21 Python
windows下添加Python环境变量的方法汇总
May 14 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
Aug 05 Python
python2与python3中关于对NaN类型数据的判断和转换方法
Oct 30 Python
对python修改xml文件的节点值方法详解
Dec 24 Python
Python 复平面绘图实例
Nov 21 Python
Tensorflow的梯度异步更新示例
Jan 23 Python
Python 实现网课实时监控自动签到、打卡功能
Mar 12 Python
Python3爬虫中关于中文分词的详解
Jul 29 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 Python
Python列表的索引与切片
Apr 07 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
珊瑚虫IP库浅析
2007/02/15 PHP
php 常用类整理
2009/12/23 PHP
PHP中header函数的用法及其注意事项详解
2016/06/13 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
mongoose中利用populate处理嵌套的方法
2017/05/26 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
Python获取当前时间的方法
2014/01/14 Python
Python中用Spark模块的使用教程
2015/04/13 Python
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
Python实现批量转换文件编码的方法
2015/07/28 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
Python post请求实现代码实例
2020/02/28 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
美国知名的家庭连锁百货商店:Boscov’s
2017/07/27 全球购物
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
会计电算化毕业生自荐信
2014/03/03 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
诚信的演讲稿范文
2014/05/12 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
拉贝日记观后感
2015/06/05 职场文书
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
2021/04/06 Python
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python