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