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 time模块详解(常用函数实例讲解,非常好)
Apr 24 Python
python过滤字符串中不属于指定集合中字符的类实例
Jun 30 Python
python 查找字符串是否存在实例详解
Jan 20 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
TensorFlow实现随机训练和批量训练的方法
Apr 28 Python
浅谈dataframe中更改列属性的方法
Jul 10 Python
python opencv实现旋转矩形框裁减功能
Jul 25 Python
Django2.1.3 中间件使用详解
Nov 26 Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 Python
在Python中使用MySQL--PyMySQL的基本使用方法
Nov 19 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
Mar 12 Python
基于Python实现下载网易音乐代码实例
Aug 10 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
文件上传的实现
2006/10/09 PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
2012/07/31 PHP
PHP防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
用JavaScript显示随机图像或引用
2009/04/21 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
2016/12/08 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
[38:51]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-CDEC
2014/05/22 DOTA
简单介绍Python中的JSON使用
2015/04/28 Python
横向对比分析Python解析XML的四种方式
2016/03/30 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
Python实现简单登录验证
2016/04/13 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
python argparse传入布尔参数false不生效的解决
2020/04/20 Python
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
班级体育活动总结
2014/07/05 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
幼儿园园长工作总结2015
2015/05/25 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS