1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
$ 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服务邮件报警的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/lixinliang/p/13825539.html