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抓取某汽车网数据解析html存入excel示例
Dec 04 Python
python 实现删除文件或文件夹实例详解
Dec 04 Python
python3实现ftp服务功能(服务端 For Linux)
Mar 24 Python
tensorflow构建BP神经网络的方法
Mar 12 Python
Python爬虫信息输入及页面的切换方法
May 11 Python
如何优雅地改进Django中的模板碎片缓存详解
Jul 04 Python
selenium在执行phantomjs的API并获取执行结果的方法
Dec 17 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 Python
anaconda如何查看并管理python环境
Jul 05 Python
python实现淘宝购物系统
Oct 25 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
Python的collections模块真的很好用
Mar 01 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实现定时生成HTML网站首页实例代码
2008/11/20 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
PhpStorm terminal无法输入命令的解决方法
2016/10/09 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
2017/11/20 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
js实现用户注册协议倒计时的方法
2015/01/21 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
Node.js事件驱动
2015/06/18 Javascript
javascript动态添加删除tabs标签的方法
2015/07/06 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
2015/10/10 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
js下拉菜单生成器dropMenu使用方法详解
2017/08/01 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
2020/05/12 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
JavaScript使用setTimeout实现倒计时效果
2021/02/19 Javascript
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
轻松掌握python设计模式之访问者模式
2016/11/18 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
为什么说Ruby是一种真正的面向对象程序设计语言
2012/10/30 面试题
毕业自荐书
2013/12/09 职场文书
校运会广播稿100字
2014/01/27 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
2016年党支部公开承诺书
2016/03/25 职场文书
java实现对Hadoop的操作
2021/07/01 Java/Android