python实现批量探测IP存活性并发送邮件告警

python实现批量探测IP存活性并发送邮件告警

ID:42486134

大小:336.35 KB

页数:6页

时间:2019-09-15

python实现批量探测IP存活性并发送邮件告警_第1页
python实现批量探测IP存活性并发送邮件告警_第2页
python实现批量探测IP存活性并发送邮件告警_第3页
python实现批量探测IP存活性并发送邮件告警_第4页
python实现批量探测IP存活性并发送邮件告警_第5页
资源描述:

《python实现批量探测IP存活性并发送邮件告警》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、python实现批量探测IP存活性并发送邮件告警前言:运维工程师在实际运维过程中,由于需要监控的IP主机数量过多且单位又没有一个监控软件使用导致日常巡检几十台或几百台主机就非常麻烦,有时候主机发生死机或宕机这样严重的故障又不能及时发现存在重大安全隐患,那么python脚本实现内网主机存活性探测且带有邮件告警功能就能帮助运维工程师解决这些问题。好了,废话不多说,直接上图!正文:多数代码都有借鉴网上一些大神的劳动成果,小菜只是将其综合揉捏在一起,请大神们多多见谅!代码一定要在linux系统中运行,window环境中有其个别模块不支持!Attachment.py:邮件告警模块

2、Auto_ping.py:批量ping工具IP.txt:需要监控的系统或主机IP列表Running_again.py:轮询主程序Timeout.txt:邮件告警转发内容Attachment.py代码如下:auto_ping.py代码如下:runing_again.py代码如下:IP.txt中IP地址格式如下:Timeout.txt文件为空就行:Liunx环境下运行runing_again.py结果如下:我的外网邮箱中收到告警邮件:attachment.py源代码内容:#coding=utf-8#!/usr/bin/python#发送邮件模块importosimports

3、ysimportsmtplibfromemail.mime.multipartimportMIMEMultipartfromemail.mime.textimportMIMETextfromemail.mime.imageimportMIMEImage#读取timeout.txt文件名file_path=sys.path[0]listfile=os.listdir(file_path)att_name=listfile[4]#发送者邮件地址、用户名、密码sender='yangXX.cn'receiver='yangXX.cn'subject="pythontestme

4、ssage"smtpserver='mail.XX.cn'username='yanglXX.cn'password='XXXX'#发送邮件的标题,和邮件附件msgRoot=MIMEMultipart('related')msgRoot['Subject']=att_nameatt=MIMEText(open(att_name,'rb').read(),'base64','utf-8')att["Content-Type"]='application/octet-stream'att["Content-Disposition"]='attachment;filename

5、='+att_namemsgRoot.attach(att)#连接邮件服务器域名,带入认证用户名和密码smtp=smtplib.SMTP()smtp.connect('mail.XX.cn')smtp.login(username,password)smtp.sendmail(sender,receiver,msgRoot.as_string())smtp.quit()auto_ping.py源代码内容:#coding=utf-8#!/usr/bin/python#批量ping模块importpexpectfromthreadingimportThreadimportd

6、atetimeimportos#打开IP.txt文件读取需要监控的ip地址hostIP=[]e=open("IP.txt","r")foriine:i=i.replace("","")hostIP.append(i)e.close()report_ok=[]report_error=[]classPING(Thread):def__init__(self,ip):Thread.__init__(self)self.ip=ipdefrun(self):Curtime=datetime.datetime.now()#Scrtime=Curtime+datetime.ti

7、medelta(0,minute,0)#print("[%s]主机[%s]"%(Curtime,self.ip))ping=pexpect.spawn("ping-c1%s"%(self.ip))check=ping.expect([pexpect.TIMEOUT,"1packetstransmitted,1received,0%packetloss"],2)ifcheck==0:print("[%s]超时%s"%(Curtime,self.ip))f=open("timeout.txt","a")f.write(self.ip+""

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。