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读写二进制文件的方法
May 09 Python
Python下rrdtool模块的基本使用方法
Nov 13 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
Jun 02 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
Sep 13 Python
python调用java的jar包方法
Dec 15 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
python 3.7.4 安装 opencv的教程
Oct 10 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
python interpolate插值实例
Jul 06 Python
python怎么删除缓存文件
Jul 19 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 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
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
异步javascript的原理和实现技巧介绍
2012/11/08 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
JS与HTML结合使用marquee标签实现无缝滚动效果代码
2016/07/05 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
JS实现省市县三级下拉联动
2020/04/10 Javascript
netbeans7安装python插件的方法图解
2013/12/24 Python
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
python实现用户登陆邮件通知的方法
2015/07/09 Python
python 基础教程之Map使用方法
2017/01/17 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
python批量爬取下载抖音视频
2019/06/17 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
Python生成随机验证码代码实例解析
2020/06/09 Python
Python如何将字符串转换为日期
2020/07/31 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
聚美优品广告词改编
2014/03/14 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
合作协议书范本
2014/10/25 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
网上祭英烈活动总结
2015/02/04 职场文书
护士2015年终工作总结
2015/04/29 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
《植物妈妈有办法》教学反思
2016/02/23 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
判断Python中的Nonetype类型
2021/05/25 Python
详解Laravel制作API接口
2021/05/31 PHP