python运维----检测主机IP ping不通则发邮件

第一章:对ip.txt文件中IP地址进行ping操作,对于ping不通的,发送邮件至对应的邮箱

 1 #!/usr/bin/env python3
 2 #coding: utf-8
 3
 4 #第一步:将对应的iping不通的p地址弄到noping.txt文件中
 5
 6 import commands
 7 import os
 8 import smtplib
 9 import email.MIMEMultipart# import MIMEMultipart
10 import email.MIMEText# import MIMEText
11 import email.MIMEBase# import MIMEBase
12 import mimetypes
13 import email.MIMEImage
14 import MIMEImage
15
16 f = open("/lianxi/aochuanfei/ip.txt","r")
17 f_noping_ip = open("/lianxi/aochuanfei/noping.txt","w")
18
19 for ip in f.readlines():
20     # 此处必须对IP地址进行处理--将ip地址转换为字符串,否则getstatusoutput函数里面不能传入变量
21     os.environ[‘ip‘] = str(ip)
22
23     # 判断ping 一下IP 之后是否通的并返回状态的语句
24     (status, optput) = commands.getstatusoutput(‘ping -c 2 $ip‘)
25
26     # 判断返回的状态,如果为0说明ping得通,如果不为0则将对应的IP地址写入另外一个文件里面,然后通过右键发送
27     if status != 0:
28         # print status,‘The ip was not ping tong is‘,ip
29         # 状态为0的的直接pass
30         f_noping_ip.write(str(ip))
31     else:
32         # print status,‘The ip was ping de tong is‘,ip
33         # 状态不为0的全部写入到noping.txt文件里面
34         pass
35
36 f.close()
37 f_noping_ip.close()
38
39 #第二步:将文件noping.txt通过邮件发送到对应邮箱
40
41
42 From = "[email protected]"
43 To = "[email protected]"
44 file_name = "noping.txt"#附件名
45
46 server = smtplib.SMTP("smtp.163.com")
47 server.login("aochuanfei","aixocm123") #仅smtp服务器需要验证时
48
49 # 构造MIMEMultipart对象做为根容器
50 main_msg = email.MIMEMultipart.MIMEMultipart()
51
52 # 构造MIMEText对象做为邮件显示内容并附加到根容器
53 text_msg = email.MIMEText.MIMEText("this is a test text to text mime",_charset="utf-8")
54 main_msg.attach(text_msg)
55
56 # 构造MIMEBase对象做为文件附件内容并附加到根容器
57 ctype,encoding = mimetypes.guess_type(file_name)
58 if ctype is None or encoding is not None:
59     ctype=‘application/octet-stream‘
60 maintype,subtype = ctype.split(‘/‘,1)
61 file_msg=email.MIMEImage.MIMEImage(open(file_name,‘rb‘).read(),subtype)
62 print ctype,encoding
63
64 ## 设置附件头
65 basename = os.path.basename(file_name)
66 file_msg.add_header(‘Content-Disposition‘,‘attachment‘, filename = basename)#修改邮件头
67 main_msg.attach(file_msg)
68
69 # 设置根容器属性
70 main_msg[‘From‘] = From
71 main_msg[‘To‘] = To
72 main_msg[‘Subject‘] = "ping不通的IP地址请看附件"
73 main_msg[‘Date‘] = email.Utils.formatdate( )
74
75 # 得到格式化后的完整文本
76 fullText = main_msg.as_string( )
77
78 # 用smtp发送邮件
79 try:
80     server.sendmail(From, To, fullText)
81 finally:
82     server.quit()
时间: 2024-10-30 05:18:40

python运维----检测主机IP ping不通则发邮件的相关文章

python运维开发笔记4

1.函数如何被调用,通过return返回值来调用 2.生成器和return区别 yield 生成器返回对象,可以迭代 可以执行 glob模块 类似shell中的正则匹配 shlex模块  Popen 将命令参数直接分词 cmd = "ps ax -o pid,ppid,cmd" shlex.split(cmd) ['ps','ax','-o','pid,ppid,cmd'] ['mysql','-u','root','-p123','-e','show processlist'] p

Python 运维常用模块

基础库:sys.os(os.path.os.stat).time.logging.prarmiko.re.random Python运维常用的20个库 1.psutil是一个跨平台库(https://github.com/giampaolo/psutil)能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资源及进程的管理. 2.IPy(http://github.com/haypo/python-ipy),辅助IP规划. 3.dnspython(h

Python运维编程

Python运维编程 作者:Danbo  2015-10-11 什么是Python,为什么要使用Python? 这个大家自行谷歌,不过看看知乎你就知道Python有多么强大:http://www.zhihu.com/question/25038841  #大蟒蛇是人形自走跑有木有啊! 首先你要知道Python很强大.Python是一个胶水语言(Glue Language).与Perl最大的不同是Python开发的哲学是:用一种方法,最好是只有一种方法来做一件事,而Perl是:总是有多种方法来做同

python运维开发笔记5

diff -Nur Diff和patch是Linux标配的工具.在Windows上,也有移植的版本可以使用. 使用中注意: 1.保证文件名完全相同,避免只有大小写不同的文件存在. 2.Diff只能比较文本文件,二进制文件只能判断是否相同,不能记录差异.Diff根据文件的前几个字节判断文件是不是文本文件. 使用方法: 可以对单个文件或者整个目录树进行处理. 以最实用的方式举例: diff –Nur dir_old dir_new > dir.patch patch –p0 < dir.patch

Python运维开发基础

Python基础知识分为以下几块 1.Python概述 2.基础语法 3.数据结构 4.Python进阶 5.实训案例 一.Python概述 1.Python简介 2.Hello World 3.搭建开发环境 4.习题 Python简介 尽管我是学计算机出身的,但是我对Python的认识是在毕业后.Python是我喜欢的语言,简洁,优美,容易使用.重要的一点是他是开源的项目. 官方网站 https://www.python.org 学习网站 http://www.okpython.com 对于简

linux运维及Python运维免费公开课

适用人群:想从事linux运维及python运维开发的人员 企业网管.技术支持.linux运维人员.大中专学生 听课时间:2014年11月30日(周日)下午1:30 听课地点:北京市昌平区沙河青年创业大厦B座1519室(地铁昌平线沙河站B1口200米处) 听课内容: LINUX运维:(1.5小时) 1.软件开源的大发展趋势及如何把握这个趋势? 2.linux运维职位到底都做什么? 3.linux运维前景到底咋样? 4.到底是选择运维还是选择开发发展? 5.运维人员如何超越年薪30万,50万? 6

Python运维开发基础01-语法基础【转】

开篇导语 整个Python运维开发教学采用的是最新的3.5.2版,当遇到2.x和3.x版本的不同点时,会采取演示的方式,让同学们了解. 教学预计分为四大部分,Python开发基础,Python开发进阶,Python网页编程,Python项目实战 Python开发基础分为语法基础篇,文件基础篇,函数基础篇,模块基础篇 语法基础篇中,我着重希望训练同学的是作为开发应该具备的一种逻辑思路. 文件基础篇中,我们需要练习的是如何将数据永久性的存储在硬盘上,提供读,写. 函数基础篇中,我重点是要引导同学们构

重磅|0元学 Python运维开发,别再错过了

51reboot 运维开发又双叒叕的搞活动了,鉴于之前 51reboot 的活动反馈,每次活动结束后(或者已经结束了很长时间)还有人在问活动的事情.这一次小编先声明一下真的不想在此次活动结束后再听到类似下面的话了 我之前不知道有活动 (这个锅小编我背了) 这个活动还有吗? 我想了解一下这个活动 跟我说可以给我按活动价算吗? .......... 针对以上类似的询问小编在此统一回复大家: 好了,接下来进入今天的重中之重 本次活动:Python 运维开发——18天训练营 本课程为:网络班+面授班(北

Python运维中20个常用的库和模块

1.psutil是一个跨平台库(https://github.com/giampaolo/psutil) 能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资源及进程的管理. 2.IPy(http://github.com/haypo/python-ipy),辅助IP规划. 3.dnspython(http://dnspython.org)Python实现的一个DNS工具包. 4.difflib:difflib作为Python的标准模块,无需安装,