2019独角兽企业重金招聘Python工程师标准>>>

#-*- 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

Python 监控主机程序,异常后发送邮件(我的第一只Python程序)相关推荐

  1. oracle 跳出内层循环,内层程序中发生异常后,不会继续执行外层程序的语句

    开发写了个存储过程需要我们审批,发现子程序中使用了异常处理语句, 通过以下实验说明这种写法的问题: SQL> create table test_number(test_id number); ...

  2. 第一只python小爬虫

    前言: 互联网就像一张无形的蜘蛛网,网站就相当于在这张网的交叉结点.而网络爬虫就是这张网上的蜘蛛,它是一种程序,能够利用url链接在各网站之间自动穿梭并抓取所需数据. 学了python的正则表达式之后 ...

  3. 【python快速编程入门 第2版】第一章 python概述 习题

    一.填空题 1.Python是面向___对象的高级语言. 2.Python 可以在多种平台运行,这体现了Python语言_可移植性的特性. 3.Python模块的本质是.py文件. 4.使用impor ...

  4. 微信小程序基础入门(一):小程序界面介绍创造自己的第一个小程序

    承接小程序配置之后 ,先对小程序开发软件的界面进行介绍: 然后进入第一个小程序的构造:获取用户登陆信息 通过左上角的 "+"添加页面 然后创建第一个功能页面 然后页面构造完成:各部 ...

  5. java程序启动后就进行了7次younggc_程序员如何优化 Java GC

    本文由CrowHawk翻译 Sangmin Lee发表在Cubrid上的"Become a Java GC Expert"系列文章的第三篇<How to Tune Java ...

  6. python获取网页数据后写入mysql_HTTP协议与使用Python获取数据并写入MySQL

    一.Http协议 二.Https协议 三.使用Python获取数据 (1)urlib (2)GET请求 (3)POST请求 四.爬取豆瓣电影实战 1.思路 (1)在浏览器中输入https://movi ...

  7. python中变量名后的逗号_深入浅析python变量加逗号,的含义

    逗号,用于生成一个长度为1的元组 >>> (1) 1 >>> (1,) (1,) >>> 1, (1,) 因此需要将长度为1的元组中元素提取出来可 ...

  8. linux程序启动后查不到进程,Linux应用程序 启动流程

    工作了这么久, 现在也终于有时间来写写这几年在程序世界中的感受.一时之间并不知道从哪里开始.想来想去,还是从大学入学开始吧.记得那是一个风和日丽的下午,一堆大学生抱着书跑进教室,那个时候并没有那么多逃 ...

  9. 数字信号处理python代码(陈后金老师书籍第一章)

    数字信号处理方面的python代码太少.鉴于python语言的流行,以及matlab对中国的不友好,准备将数字信号处理(陈后金老师版本)里的matlab代码全部python化. ''' x[k] = ...

最新文章

  1. 综述:神经网络中 Normalization 的发展历程
  2. 每人300万激励科学探索,北大谢涛、清华朱军等50人获奖,腾讯这个大奖公布...
  3. 数字证书及网络加解密原理
  4. 杂项题的基本解题思路——3、压缩文件处理
  5. 机器学习怎么入门?一份速成指南拿好!
  6. php lmpl,tjx-cold: 用于根据配置模板,快速生成controller,service,serviceimpl 代码
  7. 计算机负责指令代码的是,计算机组成原理习题2新版资料.doc
  8. 安装nagios_grapher,有图有真相。
  9. 设计灵感|见过如此吸睛的,单色调Banner设计么?
  10. python调用adb shell命令_Python3 执行 adb shell 命令详解
  11. html win10虚拟键盘,win10专业版打开虚拟键盘的方法
  12. 中国 2017 Google 开发者大会来了!
  13. ffmpeg将mp4转为m4a,m4a转mp3,mp3转ogg
  14. 【工程光学】几何光学基本定律成像概念
  15. 瑞萨单片机-硬件I2C从设备
  16. html提取excel指定单元格数据,如何利用Excel函数公式快速提取出单元格中指定的数据...
  17. 企业办理两化融合有什么优势?
  18. POJ 1066 Treasure Hunt 解题报告
  19. 「安卓按键精灵」几种字符串提取的方法(源码)
  20. 王者荣耀是用什么软件和编程语言开发的

热门文章

  1. 蓝桥杯 BASIC-14 基础练习 时间转换
  2. 蓝桥杯 BASIC-19 基础练习 完美的代价 Java版
  3. 已知前序(先序)与中序输出后序
  4. 蓝桥杯 ALGO-11算法训练 瓷砖铺放(递归/动态规划)
  5. 圣地亚哥分校 计算机,加州大学圣地亚哥分校计算机怎么样?
  6. mysql给root开启远程访问权限
  7. Swift NSDate的一个分类,把Mon Apr 04 19:45:37 +0800 2016这种格式的时间转换为2016-04-04 11:45:37 +0000
  8. 红帽高级总监谈OpenJDK的未来:Java的未来从未如此光明
  9. 看懂理解 keyboard中 , navigation的设置: 切换工作区和移动窗口到不同的工作区.
  10. [LeetCode] Missing Ranges 缺失区间