Python实现监控某个服务,服务崩溃发送邮件报告
2017-05-17 00:00
801 查看
前言:最近我们的升级服务器有点不太稳定,经常崩溃掉。然后客户连接不上,跟我们反馈才知道。所以写这个脚本的目的就是为了比客户提前知道升级服务的运行状况,一旦崩溃掉,就能第一时间登录上去,开启服务,避免客户投诉。
目标:Python实现监控某个服务,服务崩溃发送邮件报告。
原理:服务对应着端口,服务关闭的时候端口也会关闭。所以可以简化为监控某个端口,端口关闭发送邮件报告
方法:需要用到简单邮件服务器和端口探测的方法
废话不多说直接上代码:
[html] view plain copy
#-*- encoding:utf-8 -*-
#!/usr/bin/env python
# name IsOpen.py
import os
import socket
import time
import smtplib
from email.mime.text import MIMEText
mailto_list=["872766492@qq.com"]
mail_host="smtp.qq.com" #设置服务器
mail_user="1124794084" #用户名
mail_pass="密码" #口令
mail_postfix="qq.com" #发件箱的后缀
def send_mail(to_list,sub,content): #to_list:收件人;sub:主题;content:邮件内容
me="升级服务器报告"+"<"+mail_user+"@"+mail_postfix+">" #这里的hello可以任意设置,收到信后,将按照设置显示
msg = MIMEText(content,_subtype='html',_charset='gb2312') #创建一个实例,这里设置为html格式邮件
msg['Subject'] = sub #设置主题
msg['From'] = me
msg['To'] = ";".join(to_list)
try:
s = smtplib.SMTP()
s.connect(mail_host) #连接smtp服务器
s.login(mail_user,mail_pass) #登陆服务器
s.sendmail(me, to_list, msg.as_string()) #发送邮件
s.close()
return True
except Exception, e:
print str(e)
return&nb
3ff0
sp;False
def IsOpen(ip,port,flag):
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.connect((ip,int(port)))
s.shutdown(2)
print '%d is open' % port
return True
except:
print '%d is down' % port
return False
if __name__ == '__main__':
while(1>0):
flag=1
IsOpen('127.0.0.1',9906)
time.sleep(60)
flag=IsOpen('127.0.0.1',9906)
print flag
if flag==False:
send_mail(mailto_list,"XX升级服务器监测异常","error")
time.sleep(1800)
#设置一分钟监测一次,如果发现端口9906消失则发送邮件报告,设置延迟为半小时,避免一直重复发送邮件
目标:Python实现监控某个服务,服务崩溃发送邮件报告。
原理:服务对应着端口,服务关闭的时候端口也会关闭。所以可以简化为监控某个端口,端口关闭发送邮件报告
方法:需要用到简单邮件服务器和端口探测的方法
废话不多说直接上代码:
[html] view plain copy
#-*- encoding:utf-8 -*-
#!/usr/bin/env python
# name IsOpen.py
import os
import socket
import time
import smtplib
from email.mime.text import MIMEText
mailto_list=["872766492@qq.com"]
mail_host="smtp.qq.com" #设置服务器
mail_user="1124794084" #用户名
mail_pass="密码" #口令
mail_postfix="qq.com" #发件箱的后缀
def send_mail(to_list,sub,content): #to_list:收件人;sub:主题;content:邮件内容
me="升级服务器报告"+"<"+mail_user+"@"+mail_postfix+">" #这里的hello可以任意设置,收到信后,将按照设置显示
msg = MIMEText(content,_subtype='html',_charset='gb2312') #创建一个实例,这里设置为html格式邮件
msg['Subject'] = sub #设置主题
msg['From'] = me
msg['To'] = ";".join(to_list)
try:
s = smtplib.SMTP()
s.connect(mail_host) #连接smtp服务器
s.login(mail_user,mail_pass) #登陆服务器
s.sendmail(me, to_list, msg.as_string()) #发送邮件
s.close()
return True
except Exception, e:
print str(e)
return&nb
3ff0
sp;False
def IsOpen(ip,port,flag):
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.connect((ip,int(port)))
s.shutdown(2)
print '%d is open' % port
return True
except:
print '%d is down' % port
return False
if __name__ == '__main__':
while(1>0):
flag=1
IsOpen('127.0.0.1',9906)
time.sleep(60)
flag=IsOpen('127.0.0.1',9906)
print flag
if flag==False:
send_mail(mailto_list,"XX升级服务器监测异常","error")
time.sleep(1800)
#设置一分钟监测一次,如果发现端口9906消失则发送邮件报告,设置延迟为半小时,避免一直重复发送邮件
相关文章推荐
- Python实现监控某个服务,服务崩溃发送邮件报告
- python实现监控某个服务 服务崩溃即发送邮件报告
- 用python实现监控网站状态,并发送告警邮件
- Python基于smtplib实现异步发送邮件服务
- Python2.7实现监控Linux内存、CPU并发送预警邮件
- Python基于smtplib实现异步发送邮件服务
- python实现自动监控网站并发送邮件告警 推荐
- Python&Shell 简易实现监控公司网站,邮件发送异常
- python实现自动发送报警监控邮件
- python实现自动监控网站并发送邮件告警
- 监控redis和zookpeer服务脚本 并且python发送邮件
- 用python实现监控网站状态,并发送告警邮件
- 检测tomcat服务,实现崩溃自动重启并发送邮件提醒
- SVN Hook + Python实现commit后自动发送邮件
- 通过ANT实现jmeter批量执行脚本、生成报告、发送邮件全套build.xml文件
- 通过ANT实现jmeter批量执行脚本、生成报告、发送邮件全套build.xml文件
- rhel6.4中使用cact_spine监控主机实现发送邮件报警
- Python实现的简单发送邮件脚本分享
- python3.x实现自动发送邮件
- python监控脚本,监控CPU,磁盘报警时发送邮件