如何利用python监控主机存活并邮件、短信通知
- 功能:
1、使用定时任务执行脚本,检查主机存活信息
2、将主机存活信息写入指定文件
3、发现宕机的主机后给用户发邮件提醒
备注:因为139邮箱在接受到邮件后会自动给用户发送条短信告知(且此服务免费),所以间接的实现了短信提醒功能。
- 代码如下:
# -*- coding: utf-8 -*-
import os
import time
import smtplib
from email.mime.text import MIMEText
from email.header import Header # 第三方 SMTP 服务
mail_host = "***" #设置服务器
mail_user="***@***.***" #用户名
mail_pass="****" #口令 sender = "****" #发件人信息
receivers = ['****'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 hostname = [] #在列表中填写需要检测的主机地址或域名
f=open('d:/ping.txt','a+')
f.write("-----------------"+"检查开始时间为:"+time.strftime('%Y-%m-%d %H:%M:%S')+"------------------"+"\n")
f.close()
for ip in hostname:
response = os.system("ping -n 4 " + ip)
if response == 0:
data = ip + " " + 'is up!' + " " + time.strftime('%Y-%m-%d %H:%M:%S')
print data
f=open('d:/ping.txt','a+')
f.write(data + '\n')
f.close()
else:
data = ip + " " + 'is down!' + " " + time.strftime('%Y-%m-%d %H:%M:%S')
print data
f=open('d:/ping.txt','a+')
f.write(data + '\n')
f.close()
message = MIMEText(data, 'plain', 'utf-8')
message['From'] = Header("告警中心", 'utf-8')
message['To'] = Header("flanker", 'utf-8') subject = '【注意】有设备宕机'
message['Subject'] = Header(subject, 'utf-8') try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host,25) # 25 为 SMTP 端口号
#smtpObj.starttls()
smtpObj.login(mail_user,mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
print "邮件发送成功"
except smtplib.SMTPException:
print "Error: 无法发送邮件" f=open('d:/ping.txt','a+')
f.write("-----------------"+"检查结束时间为:"+time.strftime('%Y-%m-%d %H:%M:%S')+"------------------"+"\n"+"\n")
f.close()
如何利用python监控主机存活并邮件、短信通知的更多相关文章
- Python监控主机是否存活,并发报警邮件
利用python写了简单测试主机是否存活脚本,此脚本不适于线上使用,因为网络延迟.丢包现象会造成误报邮件,那么后续会更新判断三次ping不通后再发报警邮件,并启用多线程处理. #!/usr/bin/e ...
- 利用Python+163邮箱授权码发送带附件的邮件
背景 前段时间写了个自动爬虫的脚本,定时在阿里云服务器上执行,会从某个网站上爬取链接保存到txt文本中,但是脚本不够完善,我需要爬虫完毕之后通过邮件把附件给我发送过来,之前写过一个<利用Pyth ...
- 利用Python imaplib和email模块 读取邮件文本内容及附件内容
python使用imap接收邮件的过程探索 https://www.cnblogs.com/yhlx/archive/2013/03/22/2975817.html #! encoding:utf8 ...
- Python 用POP接收邮件
一.简介 POP(Post Office Protocal)最长用的POP版本是POP3,因此本文是以POP3为主.POP3非常简单,可以用来从邮件服务器上下载邮件,然后删除这些邮件.功能非常有限,后 ...
- Python 用IMAP接收邮件
一.简介IMAP(Internet Message Access Protocol),这个协议与POP一样,也是从邮件服务器上下载邮件到本机,不过IMAP比POP的功能要更加强大些,IMAP除支持PO ...
- 利用Python+163邮箱授权码发送邮件
背景 前段时间写了个自动打卡的脚本,但是脚本不够完善,我需要知道,打卡到底成没成功,因此,我想到了用Python执行完代码之后,再执行一段发送邮件的代码.需求开始明确了,就开始分析和写代码实现吧. 分 ...
- 如何利用Python实现自动打卡签到
需求描述 我们需要登录考勤系统(网页端,非手机端)进行签到,如果不想每天都早早起来打卡签到,就可以通过写程序实现这一功能. 业务梳理 通过长时间的早起打卡签到发现规律,我每天只是不停的点击,签到,都是 ...
- 利用Python,四步掌握机器学习
为了理解和应用机器学习技术,你需要学习 Python 或者 R.这两者都是与 C.Java.PHP 相类似的编程语言.但是,因为 Python 与 R 都比较年轻,而且更加“远离”CPU,所以它们显得 ...
- 利用python 掌握机器学习的过程
转载:http://python.jobbole.com/84326/ 偶然看到的这篇文章,觉得对我挺有引导作用的.特此跟大家分享一下. 为了理解和应用机器学习技术,你需要学习 Python 或者 R ...
随机推荐
- Windows10+Ubuntu双系统安装 (转)
1.Windows10+Ubuntu双系统安装: http://www.jianshu.com/p/2eebd6ad284d 2.UEFI启动模式安装ubuntu指南 : http://col ...
- request response
request 和 response 这两个对象是出现在service方法中.service方法是用来接收请求处理请求,完成响应的. 接受请求指的就是request对象 完成响应指的就 ...
- OC编程之道-创建对象之单例模式
一 何为单例singleton模式?(what) 保证一个类只有一个实例,并提供一个访问它的全局访问点. 二 何时使用单例模式?(where) 1类只能有一个实例,而且必须从一个为人熟知的访问点对其访 ...
- 使用Fiddler搭建手机调试环境(我做得项目是调试微信的公众号)
部分内容参考:http://ju.outofmemory.cn/entry/22854 我们在测试微信企业号的时候,由于微信的限制,不能把它拿到chrome浏览器中进行调试,所以就不能实时的看到页面变 ...
- 深入研究java.lang.Runtime类
一.概述 Runtime类封装了运行时的环境.每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接. 一般不能实例化一个Runtime对象, ...
- [译]:Orchard入门——构建你的第一个Orchard网站
原文链接:Building Your First Orchard Site 文章内容基于Orchard 1.8版本 本文将逐步简要介绍Orchard提供的功能.如果你是第一次使用Orchard,本文将 ...
- linux yum安装jdk
>>>>>>>>>> 实例: yum安装jdk 1.查看当前的jdk版本,并卸载 (注1:rpm -qa ###解释:查询所有安装的rpm包 ...
- hasLayout && Block Formatting Contexts
转自:http://www.smallni.com/haslayout-block-formatting-contexts/ 因为本人脑子不好使,自己打印出了一张hasLayout和Block For ...
- [资料分享]Python视频教程(基础篇、进阶篇、项目篇)
Python是一种开放源代码的脚本编程语言,这种脚本语言特别强调开发速度和代码的清晰程度.它可以用来开发各种程序,从简单的脚本任务到复杂的.面向对象的应用程序都有大显身手的地方.Python还被当作一 ...
- Leetcode Candy
There are N children standing in a line. Each child is assigned a rating value. You are giving candi ...