监控服务器网络是否正常
2016-02-18 15:18
686 查看
功能:监控服务器网络是否正常(比如网线松动)或者服务器启动是否正常,如果服务器异常,邮件通知。
#encoding:utf-8 ''' Created on 2016-2-18 @author: yuanyuan ''' from email.mime.text import MIMEText from email.utils import formatdate import smtplib import os import time class Email: def __init__(self, from_addr, from_password, to_addrs): self.from_addr = from_addr self.from_password = from_password self.to_addrs = to_addrs def send_mail(self, message): smtp_server = 'smtp.sihuatech.com' # 邮件正文,html格式 html = '<html><body><h2><font color="#FF0000">' + str(message) + '</font></h2></body></html>' msg = MIMEText(html, 'html', 'utf-8') # 发件人 msg['From'] = self.from_addr # 收件人 msg['To'] = ";".join(self.to_addrs) # 主题 msg['Subject'] = message[9:23] + "服务器异常" # 时间 msg['Date'] = formatdate(localtime=True) try: server = smtplib.SMTP(smtp_server, 25) server.login(self.from_addr, self.from_password) server.sendmail(self.from_addr, self.to_addrs, msg.as_string()) except Exception, e: print e finally: server.close() if __name__ == '__main__': from_addr = 'fayuan.peng@sihuatech.com' from_password = '1qaz@WSX' to_addrs = ['fayuan.peng@sihuatech.com', 'chang.lu@sihuatech.com'] serviers = ['10.222.138.210', '10.222.138.232', '10.222.138.233', '10.222.138.128', '10.222.138.118'] email_realtimeMonotor = Email(from_addr, from_password, to_addrs) while True: for servier in serviers: response_message = os.system('ping -c 4 ' + servier) if response_message > 0: print '服务器异常,需要发送邮件' if servier == "10.222.138.210": email_realtimeMonotor.send_mail("真实机10.222.138.210异常,可能导致虚拟机10.222.138.221、10.222.138.223、10.222.138.225、10.222.138.227、10.222.138.228、10.222.138.229、10.222.138.230、10.222.138.231无法访问,请检查网线是否松动或者机器是否正常启动") elif servier == "10.222.138.232": email_realtimeMonotor.send_mail("真实机10.222.138.232异常,可能导致虚拟机10.222.138.238、10.222.138.243、10.222.138.247、10.222.138.248无法访问,请检查网线是否松动或者机器是否正常启动") elif servier == "10.222.138.233": email_realtimeMonotor.send_mail("真实机10.222.138.233异常,可能导致虚拟机10.222.138.236、10.222.138.245、10.222.138.246无法访问,请检查网线是否松动或者机器是否正常启动") elif servier == "10.222.138.128": email_realtimeMonotor.send_mail("真实机10.222.138.128异常,可能导致虚拟机10.222.138.110、10.222.138.111、10.222.138.112、10.222.138.113、10.222.138.116、10.222.138.117、10.222.138.123、10.222.138.124无法访问,请检查网线是否松动或者机器是否正常启动") elif servier == "10.222.138.118": email_realtimeMonotor.send_mail("真实机10.222.138.128异常,请检查网线是否松动或者机器是否正常启动") else: print '服务器正常,无需发送邮件' time.sleep(5) time.sleep(600)
相关文章推荐
- Java中通过TCP协议发送和接收数据-Socket编程
- Java中通过TCP协议发送和接收数据-Socket编程
- iOS-使用NSURLConnection进行Http Get和Post请求网络数据
- HTTPhttp请求
- 创建本地yum源-http方式
- App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. 问题
- 多线程环境下调用 HttpWebRequest 并发连接限制
- JavaWeb:报错The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- HTTP笔记
- linux服务器TCP并发连接数优化
- linux服务器TCP并发连接数优化
- 2016太原网络营销师开讲百度竞价(SEM)优化从哪些角度考虑?
- 网络路由基础认识
- 匿名突破网络限制 (Tor工作原理分析)
- java-httpclient-HTTPS请求
- 使用Python来编写HTTP服务器的超级指南
- Linux TCP
- 使用Eclipse进行远程调试(原文http://blog.csdn.net/sunyujia/article/details/2614614)
- http url转义字符,特殊字符
- RESTEasy中的HTTP异步处理(下)