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之有容乃大的list(4)
Sep 28 Python
Python中pygame安装方法图文详解
Nov 11 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
Jul 22 Python
浅谈使用Python变量时要避免的3个错误
Oct 30 Python
python基于物品协同过滤算法实现代码
May 31 Python
python后端接收前端回传的文件方法
Jan 02 Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
Python学习笔记之While循环用法分析
Aug 14 Python
Python整数与Numpy数据溢出问题解决
Sep 11 Python
Pycharm导入anaconda环境的教程图解
Jul 31 Python
Python开发简易五子棋小游戏
May 02 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中文字母数字验证码实现代码
2008/04/25 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
2011/11/23 PHP
ThinkPHP实现多数据库连接的解决方法
2014/07/01 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
PHP实现无限级分类(不使用递归)
2015/10/22 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
使用javascript实现json数据以csv格式下载
2015/01/09 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
Move.js入门
2017/02/08 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
2020/07/28 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python向日志输出中添加上下文信息
2017/05/24 Python
基于python3 类的属性、方法、封装、继承实例讲解
2017/09/19 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
python对html过滤处理的方法
2018/10/21 Python
详解python运行三种方式
2019/05/13 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
德国家具购物网站:Möbel Höffner
2019/08/26 全球购物
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
美国最大的烧烤架和户外生活用品专业零售商:Barbeques Galore
2021/01/09 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
毕业生个人求职信范文分享
2014/01/05 职场文书
远程研修随笔感言
2014/02/10 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
战马观后感
2015/06/08 职场文书