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机器学习之神经网络(三)
Dec 20 Python
python 动态加载的实现方法
Dec 22 Python
python解决js文件utf-8编码乱码问题(推荐)
May 02 Python
Jupyter中直接显示Matplotlib的图形方法
May 24 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
Mar 05 Python
python try 异常处理(史上最全)
Mar 07 Python
Python OpenCV中的resize()函数的使用
Jun 20 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
python 消费 kafka 数据教程
Dec 21 Python
Python中 Global和Nonlocal的用法详解
Jan 20 Python
python实现随机加减法生成器
Feb 24 Python
python中的plt.cm.Paired用法说明
May 31 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
全国FM电台频率大全 - 24 贵州省
2020/03/11 无线电
php基于jquery的ajax技术传递json数据简单实例
2016/04/15 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
JQuery选中checkbox方法代码实例(全选、反选、全不选)
2015/04/27 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
bootstrap手风琴折叠示例代码分享
2017/05/22 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
javascript实现简易聊天室
2019/07/12 Javascript
详解React的回调渲染模式
2020/09/10 Javascript
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
Python函数中定义参数的四种方式
2014/11/30 Python
Python实现 多进程导入CSV数据到 MySQL
2017/02/26 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
Python 中Pickle库的使用详解
2018/02/24 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
基于pygame实现童年掌机打砖块游戏
2020/02/25 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
django执行数据库查询之后实现返回的结果集转json
2020/03/31 Python
解决Keras 自定义层时遇到版本的问题
2020/06/16 Python
python如何随机生成高强度密码
2020/08/19 Python
input元素的url类型和email类型简介
2012/07/11 HTML / CSS
美国女性奢华品牌精品店:INTERMIX
2017/10/12 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
介绍一下except的用法和作用
2015/01/22 面试题
临床医师个人自我评价
2014/04/06 职场文书
支部组织生活会方案
2014/06/10 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
入党函调证明材料
2014/12/24 职场文书
白银帝国观后感
2015/06/17 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
html+css实现文字折叠特效实例
2021/06/02 HTML / CSS