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

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

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
python实现批量探测IP存活性并发送邮件告警

python实现批量探测IP存活性并发送邮件告警前言:运维工程师在实际运维过程中,由于需要监控的IP主机数量过多且单位又没有一个监控软件使用导致日常巡检几十台或几百台主机就非常麻烦,有时候主机发生死机或宕机这样严重的故障又不能及时发现存在重大安全隐患,那么python脚本实现内网主机存活性探测且带有邮件告警功能就能帮助运维工程师解决这些问题。好了,废话不多说,直接上图!正文:多数代码都有借鉴网上一些大神的劳动成果,小菜只是将其综合揉捏在一起,请大神们多多见谅!代码一定要在linux系统中运行,window环境中有其个别模块不支持!Attachment.py:邮件告警模块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# 发送邮件模块import osimport sysimport smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage # 读取timeout.txt文件名file_path = sys.path[0]listfile = os.listdir(file_path)att_name = listfile[4]# 发送者邮件地址、用户名、密码sender = yangXX.cn receiver = yangXX.cnsubject = python test messagesmtpserver = mail.XX.cnusername = yanglXX.cnpassword = 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=+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模块import pexpectfrom threading import Threadimport datetimeimport os# 打开IP.txt文件读取需要监控的ip地址hostIP=[]e = open(IP.txt, r)for i in e: i = i.replace(\n, ) hostIP.append(i)e.close()report_ok=[]report_error=[]class PING(Thread): def __init__(self,ip): Thread.__init__(self) self.ip=ip def run(self): Curtime = datetime.datetime.now() #Scrtime = Curtime + datetime.timedelta(0,minute,0) #print([%s]主机[%s] % (Curtime,self.ip)) ping=pexpect.spawn(ping -c1 %s % (self.ip)) check=ping.expect([pexpect.TIMEOUT,1 packets transmitted, 1 rec

您可能关注的文档

文档评论(0)

almm118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档