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标准库urllib2的一些使用细节总结
Mar 16 Python
python解析xml文件实例分析
May 27 Python
python+django+sql学生信息管理后台开发
Jan 11 Python
将python代码和注释分离的方法
Apr 21 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
Dec 02 Python
django搭建项目配置环境和创建表过程详解
Jul 22 Python
解决ROC曲线画出来只有一个点的问题
Feb 28 Python
Python代码执行时间测量模块timeit用法解析
Jul 01 Python
Python优秀开源项目Rich源码解析的流程分析
Jul 06 Python
python 爬取哔哩哔哩up主信息和投稿视频
Jun 07 Python
Python制作动态字符画的源码
Aug 04 Python
Python 一键获取电脑浏览器的账号密码
May 11 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
CI框架整合smarty步骤详解
2016/05/19 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
PHP实现负载均衡的加权轮询方法分析
2018/08/22 PHP
jquery选择器之属性过滤选择器详解
2014/01/27 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
js和jquery实现监听键盘事件示例代码
2020/06/24 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
vue实现底部菜单功能
2018/07/24 Javascript
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
改进Django中的表单的简单方法
2015/07/17 Python
python实现报表自动化详解
2017/11/16 Python
SVM基本概念及Python实现代码
2017/12/27 Python
Python+tkinter使用80行代码实现一个计算器实例
2018/01/16 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
Python unittest框架操作实例解析
2020/04/13 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
行政管理专业推荐信
2013/11/02 职场文书
幼儿园保教管理制度
2014/02/03 职场文书
单位委托书
2014/10/15 职场文书
离婚协议书格式
2014/11/21 职场文书
2014年度考核工作总结
2014/12/24 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
你知道Java Spring的两种事务吗
2022/03/16 Java/Android
PO模式在selenium自动化测试框架的优势
2022/03/20 Python
Java十分钟精通进阶适配器模式
2022/04/06 Java/Android