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之编写类之三子类
Oct 11 Python
Python对list列表结构中的值进行去重的方法总结
May 07 Python
Python中模块string.py详解
Mar 12 Python
由浅入深讲解python中的yield与generator
Apr 05 Python
Python 多线程的实例详解
Sep 07 Python
python文本数据相似度的度量
Mar 12 Python
PyQt5每天必学之滑块控件QSlider
Apr 20 Python
详解pyenv下使用python matplotlib模块的问题解决
Nov 29 Python
flask实现验证码并验证功能
Dec 05 Python
python 实现保存最新的三份文件,其余的都删掉
Dec 22 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
详解Python实现进度条的4种方式
Jan 15 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防CC攻击实现代码
2011/12/29 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
PHP实现随机生成水印图片功能
2017/03/22 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
微信小程序自定义波浪组件使用方法详解
2019/09/21 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
Python下使用Psyco模块优化运行速度
2015/04/05 Python
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
Python中单、双下划线的区别总结
2017/12/01 Python
python实现员工管理系统
2018/01/11 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
Python正则表达式和re库知识点总结
2019/02/11 Python
Python线程之定位与销毁的实现
2019/02/17 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
高级Java程序员面试题
2016/06/23 面试题
优秀共产党员先进事迹
2014/01/27 职场文书
作风整顿剖析材料
2014/09/30 职场文书
电子银行业务授权委托书
2014/10/10 职场文书
2014年维修工作总结
2014/11/22 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
小学英语听课心得体会
2016/01/14 职场文书
优秀创业计划书分享
2019/07/19 职场文书