python 检测nginx服务邮件报警的脚本
作者:lixinliang 发布时间:2023-08-04 17:34:10
标签:python,检测,nginx,邮件,报警
$ 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()
来源:https://www.cnblogs.com/lixinliang/p/13825539.html


猜你喜欢
- 沟通的时候,一般我不主动说自己是做用户体验设计,也不说做以用户为中心的设计,包括UED, UCD。这种专业名词传达的太虚,你也许是名用户体验
- 在开发和调试基于XML的应用的时候,程序员往往为找不到合适的快速桌面XPATH测试软件发愁。诚然,市面上有成套的XML编辑软件,但是它们往往
- 一个网站程序,在添加新闻时出现错误以下是错误提示: Microsoft OLE DB Provide
- 正常使用了go 1.8一段时间没有发现异常,为了发布便捷,以及后期引入plug-in,开始将大项目分解。涉及到通过vendor引入私有库保存
- 先看要实现的饼图效果图方法一:使用seriesseries: [ { &
- 为什么会用多页面在开发时,对于同一类型的多网站,多页面大大节省开发时间,只需要配置一次就可以实现多次开发变成单次开发,同时一个包就可以展示一
- PSUtil是一个跨平台的Python库,用于检索有关正在运行的进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。它可以跨平台使用
- 方法一import randomimport numpy as npfrom PIL import Image, ImageOps, Ima
- 上篇介绍的使用python自带tkinter包,来写带界面的工具。此篇介绍使用pyqt来开发测试工具。tkinter的好处是python官方
- 翻译自StackOverflow中一个关于Python异常处理的问答。问题:为什么“except:pass”是一个不好的编程习惯?我时常在S
- random随机模块包括返回随机数的函数,可以用于模拟或者任何产生随机输出的程序。一.random模块常用函数介绍random.random
- 从 PDF 表格中获取数据是一项痛苦的工作。不久前,一位开发者提供了一个名为 Camelot 的工具,使用三行代码就能从 PDF 文件中提取
- 目标:创建一个字典,记录几对python词语,使用OrderedDict类来写,并按顺序输出。写完报错:[root@centos7 tmp]
- 用扩展名判断文件格式非常简单,但是有可能是错误的。 jpeg文件有固定的文件头,其文件头的格式如下:Start Marker | JFIF
- 前言大家好,我叫善念。这是我的第二篇博客,也是第一篇技术博客,希望大家多多支持,让我更加有动力去更新一些python爬虫类的案例教程。开始确
- 数据库开发数据库应用,选择一个好的数据库是非常重要的。下面从一些方面比较了SQL Server与Oracle、DB2三种数据库,为你选择数据
- 远程登陆SQLServer (2014)数据库,供大家参考,具体内容如下两台电脑,同一个局域网内,IP同一网段配置:Computer1: W
- 前言2017年12月2日,Django官方发布了2.0版本,成为多年来的第一次大版本提升,那么2.0对广大Django使用者有哪些变化和需要
- 几种常见的嵌套查询——以学员成绩为例嵌套查询,也称为子查询,是实际工作中经常用到的一种查询方式。子查
- 基本开发环境· Python 3.6· Pycharm需要导入的库目标网页分析网站是静态网站,没有加密,可以直接爬取整体思路:1、先在列表页