python实现批量探测IP存活性并发送邮件告警_第1页
python实现批量探测IP存活性并发送邮件告警_第2页
python实现批量探测IP存活性并发送邮件告警_第3页
python实现批量探测IP存活性并发送邮件告警_第4页
python实现批量探测IP存活性并发送邮件告警_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、python会同时检测IP的生存性,并发送消息警告前言:运输技术人员在实际运输过程中,要监视的IP主机数量太多,单位不使用监视软件,日常巡视检查数十台或数百台主机非常麻烦,有时主机会发生恐慌或瘫痪等重大故障,无法立即发现重大的安全危险python script实现了内部网主机的生存性检测,具有邮件报警功能可以帮助运输技术人员解决这些问题。 好吧,别胡说,直接上图!正文:很多代码参考了网络上一些大神的劳动成果,菜只是综合地揉它,请大神们原谅! 代码必须在linux系统上运行,窗口环境中不支持各个模块!Attachment.py :邮件报警模块Auto_ping.py :批量ping工具IP.tx

2、t :需要监视的系统或主机的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 sys公司导入smtplibfromemail.mime.mult

3、ipartimportmimmultipartfromemail.mime.textimportmimettextfromemail.mime.imageimportmimeimage读取timeout.txt文件名file_path=sys.path0listfile=os.listdir(file_path )att_name=listfile4#发件人电子邮件地址、用户名、密码sender= yangXX.cn接收器=subject= python测试消息SMTP服务器=username= yanglXX.cnpassword=XXXX#发送邮件的标

4、题、邮件附件msgRoot=MIMEMultipart(related )msgRootSubject=att_nameatt=mime text (打开(att _ name,rb).read ()、base64,utf-8 )att content-type =应用程序/octet-streamatt content-disposition =attachment; filename=att_namemsgRoot.attach(att )连接到邮件服务器的域名,并导入认证用户名和密码smtp=smtplib.SMTP ()smtp.connect(mail.XX.cn )SMTP.log

5、 in (用户名称,密码)SMTP.sendmail (发送者,接收者,msgRoot.as_string ()smtp.quit ()auto_ping.py源代码的内容:# coding=utf-8#! /usr/bin/python#批量ping模块导入p expect从读取导入读取.导入日期时间导入操作系统打开ip.txt文件,读入要监视的IP地址hostIP=e=打开( IP.txt , r )e :上的for i in e:I=I .替换(n ,)hostIP.append(i )e.close ()report_ok=report_error=等级坪(thread ) :def

6、_init_(self,ip):Thread._init_(self )self.ip=ipPS run (自) :Curtime=datetime.datetime.now ()# scrtime=curimedatetime.time delta (0,minute,0 )打印(“% s”主机%s % (Curtime,self.ip ) )ping=p expect.spawn ( ping-C1 % s % (self.IP ) )check=ping.expect ( p expect.time out, 1数据包传输,1接收,0 %数据包丢失,2 )if check=0:打印(“%

7、 s”超时% s% (curtime,self.ip ) )f=打开( time out.txt , a )f.write(self.ip n )f.close ()elif check=1:打印(“% s”% s是“% (Curtime,self.ip ) )else:打印(“%s”主机%s不能是“% (Curtime,self.ip )#多线程同时执行T_thread=主机上:t=PING(i )T_thread.append(t )forinirange (len (t _ thread ) ) :T_threadi.start ()runing_again.py源代码的内容:# cod

8、ing=utf-8#! /usr/bin/python_ _ author _ _=管理器导入散列lib导入系统导入操作系统导入时间获取timeout.txt的md5值函数def GetStrMd5():f=打开( time out.txt , r )content=f.read ()f.close ()m0=hashlib.md5()m0 .更新(内容)return m0.hexdigest ()每两分钟重复检测#timeout.txt的md5值,在前后的timeout.txt文件的大小一致时再次轮询#前后的timeout.txt文件不匹配时,发送警告邮件if _ _ name _ _ _ _ _ _ _ _ 3360while True:md1=GetStrMd5()ti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论