Python监控主机是否存活,并发报警邮件
1.利用python写了简单测试主机是否存活脚本,此脚本不适于线上使用,因为网络延迟、丢包现象会造成误报邮件,那么后续会更新判断三次ping不通后再发报警邮件,并启用多线程处理。
#!/usr/bin/env python
# coding:UTF-
import time
import pexpect
import smtplib
from email.mime.text import MIMEText mail_host = "smtp.163.com" #定义smtp服务器
mail_to = "baojingtongzhi@163.com" #邮件收件人
mail_from = "monitor@163.com" #邮件发件人
mail_pass = "" #邮件发件人邮箱密码 while True:
def Mail(error_ip):
date = time.strftime('%Y-%m-%d %H:%M:%S')
msg = MIMEText("%s Ping %s failed from 255.252." % (date, error_ip))
msg['Subject'] = "Ping %s failed." % error_ip #定义邮件主题
msg['From'] = mail_from
msg['To'] = mail_to
try:
s = smtplib.SMTP() #创建一个SMTP()对象
s.connect(mail_host, "") #通过connect方法连接smtp主机
s.starttls() #启动安全传输模式
s.login(mail_from,mail_pass) #邮箱账户登录认证
s.sendmail(mail_from, mail_to, msg.as_string()) #邮件发送
s.quit() #断开smtp连接
except Exception, e:
print str(e)
ip_list = ['192.168.18.10',
'192.168.18.11',
'192.168.18.12']
for ip in ip_list:
ping = pexpect.spawn('ping -c 1 %s' % ip)
check = ping.expect([pexpect.TIMEOUT,"1 packets transmitted, 1 received, 0% packet loss"],) #2代表超时时间
if check == :
Mail(ip)
print "Ping %s failed,Have email." % ip
if check == :
print "Ping %s successful." % ip
print "Sleep 10s..."
time.sleep()
2.直接运行
# python ping.py Ping 192.168.18.10 successful. Ping 192.168.18.11 successful. Ping 192.168.18.12 successful. Sleep 10s...
Python监控主机是否存活,并发报警邮件的更多相关文章
- 使用python脚本配置zabbix发送报警邮件
#前提得在zabbix_server配置文件中配置触发脚本的目录,例如,我配置的在/usr/local/zabbix/server/scripts目录下 编写python脚本如下 因为我的服务器在腾讯 ...
- powershel连接数据库监控数据库状态并发报警邮件
function Get-DatabaseData { [CmdletBinding()] param ( [string]$connectionString, ...
- Python检测服务端口存活状态并报警
最近发现公司的测试环境中有个Socket服务的端口总是莫名其妙Down掉,但是服务却正常运行着,看样子是僵死了... 虽然是测试环境,但是也不能这样放着不管,于是连夜写了一个简单的监控脚本.因为服务器 ...
- zabbix配置发送报警邮件
配置邮件分为两种情况: 第一种:使用远端邮件服务器发送报警邮件 Linux系统版本:CentOS6.5-64 下载mailx: http://nchc.dl.sourceforge.net/proje ...
- cacti报警邮件的设置
众所周知,用Linux系统自带的sendmail发送邮件是有限制的,可能对有些邮箱无法正常发送,导致报警邮件不能够及时发送到,因此就可能会产生不必要的麻烦!对此,我们可以用其他方法来发送邮件,就是在c ...
- 使用Zabbix服务端本地邮箱账号发送报警邮件及指定报警邮件操作记录
邮件报警有两种情况:1)Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号(例如:root@localhost.localdomain), ...
- Python 多线程教程:并发与并行
转载于: https://my.oschina.net/leejun2005/blog/398826 在批评Python的讨论中,常常说起Python多线程是多么的难用.还有人对 global int ...
- zabbix监控系列(4)之zabbix报警邮件无法发送
情况介绍 首先确保邮箱规则没有把报警邮件作为垃圾邮件拉黑了. 服务器断电重启后,发现zabbix报警邮件无法发送,断电之前是好好的,但是重启后不行了,于是查看maillog日志,发现这个错误: Hos ...
- Linux下监控磁盘使用量并在超过阀值后自动发送报警邮件
最近Linux服务器磁盘使用量经常到100%,直到影响到正常服务出现故障才会去注意,做不到防患于未然,今天在网上搜集了资料,加上自己修改,写了一个shell脚本用于实时监控磁盘使用量并在超过阀值后自动 ...
随机推荐
- HDU4670 cube number on a tree(点分治+三进制加法)
The country Tom living in is famous for traveling. Every year, many tourists from all over the world ...
- A.Math Problem
题意:这里有n个区间,你需要添加一个区间,使得每个区间都至少有一个共同的点在这个区间,且长度最小,输出最小的长度. 分析:找出所有区间右端点的最小值,和所有区间左端点的最大值,然后答案就是max(0, ...
- ARTS-S EN0002-London HIV patient's remission spurs hope for curing AIDS
原文 A stem-cell treatment put a London cancer patient's HIV into remission, marking the second such r ...
- 【CSS】309- 复习 CSS盒模型
点击上方"前端自习课"关注,学习起来~ 一.概念 CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:外边距(margin).边框(border).内边距(padding ...
- Orleans[NET Core 3.1] 学习笔记(三)( 1 )本地开发配置
本地开发配置 本地开发和调试的时候,我们可能不需要去关注集群和网络ip端口.所以对于本地开发模式,Orleans给了我们比较简单的配置方式. Silo配置 在本地开发的配置模式下,Orleans会默认 ...
- webpack前端简单配置
每次用webpack创建项目时,总是要安装一堆包,还要配置一系列文件解析规则,webpack打包规则等,烦不胜烦.网上找的很多webpack配置里面很多里面的配置或者引入包都是被弃用的,因此自己总结了 ...
- 基于C# WPF框架的贪吃蛇
游戏开始界面 游戏开始 共有两条蛇,吃到红色食物加1分,吃到绿色毒食物减1分,知道0不减: 碰到墙壁游戏结束,碰到对方游戏结束,碰到自己游戏结束 此游戏通过Canvas画布布局,通过C#代码实现 游戏 ...
- C#线程学习笔记四:线程同步
本笔记摘抄自:https://www.cnblogs.com/zhili/archive/2012/07/21/ThreadsSynchronous.html,记录一下学习过程以备后续查用. ...
- ProjectServer2010升级到ProjectServer2016,Sharepoint2010升级到Sharepoint2016第三章
继续上一章,转换了身份认证模式后继续将WSS_Content备份还原到2016数据库服务器上升级,发现还是报错,报错截图如下: 查看日志,提到某些网站集还体验还是2010的,需要升级,可是我明明升级了 ...
- linux搭建TFTP服务
1.安装tftp服务和客户端 sudo apt-get install xinetd tftp tftpd 2.配置 vim /etc/xinetd.d/tftp 内容如下: service tftp ...