博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 监控主机程序,异常后发送邮件(我的第一只Python程序)
阅读量:5790 次
发布时间:2019-06-18

本文共 1313 字,大约阅读时间需要 4 分钟。

hot3.png

#-*- 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=["rootliu@****.com"]   
mail_host="smtp.****.com"  #设置服务器  
mail_user="rootliu@****.com"    #用户名  
mail_pass="******"   #口令   
mail_postfix="****.com"  #发件箱的后缀  
    
def send_mail(mailto_list,sub,content):  #to_list:收件人;sub:主题;content:邮件内容  
    me="VPN Server  is down"+"<"+mail_user+"@"+mail_postfix+">"   #这里的hello可以任意设置,收到信后,将按照设置显示  
    msg = MIMEText(content,_subtype='html',_charset='gb2312')    #创建一个实例,这里设置为html格式邮件  
    msg['Subject'] = sub    #设置主题  
    msg['From'] = me    
    msg['To'] = ";".join(mailto_list)    
    try:    
        s = smtplib.SMTP()    
        s.connect(mail_host)  #连接smtp服务器  
        s.login(mail_user,mail_pass)  #登陆服务器  
        s.sendmail(me, mailto_list, msg.as_string())  #发送邮件  
        s.close()    
        return True    
    except Exception as e:
        print str(e)    
        return 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',80,flag)  
        time.sleep(5)  
        flag=IsOpen('127.0.0.1',80,flag)  
        print (flag)  
        if flag==False:  
            send_mail(mailto_list,"VPN Server is down","error")  
            time.sleep(5)

 

转载于:https://my.oschina.net/rootliu/blog/902144

你可能感兴趣的文章
BeanShell变量和方法的作用域
查看>>
LINUX下防恶意扫描软件PortSentry
查看>>
由数据库对sql的执行说JDBC的Statement和PreparedStatement
查看>>
springmvc+swagger2
查看>>
我的友情链接
查看>>
Java Web Application 自架构 一 注解化配置
查看>>
如何 debug Proxy.pac文件
查看>>
Python 学习笔记 - 面向对象(特殊成员)
查看>>
Kubernetes 1.11 手动安装并启用ipvs
查看>>
Puppet 配置管理工具安装
查看>>
Bug多,也别乱来,别被Bug主导了开发
查看>>
sed 替换基础使用
查看>>
高性能的MySQL(5)创建高性能的索引一B-Tree索引
查看>>
oracle备份与恢复--rman
查看>>
图片变形的抗锯齿处理方法
查看>>
Effective C++ Item 32 确保你的 public 继承模子里出来 is-a 关联
查看>>
phpstorm安装laravel-ide-helper实现自动完成、代码提示和跟踪
查看>>
python udp编程实例
查看>>
TortoiseSVN中图标的含义
查看>>
Tasks and Back stack 详解
查看>>