python做一个系统-用python做一个系统监控程序
#coding:utf8
from email.mime.text import MIMEText
import smtplib,psutil,time,os,datetime
destination = ["18410208050@163.com"] #定义邮件接收者
source = "775465751@qq.com" #定义邮件发送者
mail_server = "smtp.qq.com"
username = "775465751"
password = "wrromyiywqijbdia"
def send_mail(des,title,content):
csj = MIMEText(content)
csj["Subject"] = title
csj["From"] = source
csj["To"] = ";".join(destination)
try:
a = smtplib.SMTP_SSL(mail_server,465)
a.connect(mail_server)
a.login(username,password)
a.sendmail(source,destination,csj.as_string())
a.close()
return True
except Exception,e:
print e
return False
def hostname():
com = "hostname"
res = os.popen(com)
content = res.read()
return content
def mem_use():
total_mem = psutil.virtual_memory().total
free_mem = psutil.virtual_memory().available
res = (psutil.virtual_memory().available/float(psutil.virtual_memory().total))*100
return res
def system(a,b):
cpu_info = []
mem_info = []
now_time = "Date %s"%datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d")
count = 1
print "Start monitoring "
while True:
time.sleep(60) #定义采集系统信息的频率,单位为秒
if count <= 10: #定义每采集十次系统信息后输出平均值
cpu_info.append(psutil.cpu_percent())
mem_info.append(mem_use())
count += 1
else:
cpu_info.pop(0)
mem_info.pop(0)
cpu_info.append(psutil.cpu_percent())
mem_info.append(mem_use())
cpu_avg = sum(cpu_info)/10
mem_avg = sum(mem_info)/10
if (cpu_avg >= a) or (mem_avg >= b):
print("---------------------------------------------------------")
print now_time
warning_cpu = ("Warning CPU Used:%.2f%%")%cpu_avg
warning_mem = ("Warning CPU Used:%.2f%%")%mem_avg
print warning_cpu
print warning_mem
send_mail(destination,"Warning Server Overload",hostname()) #发送邮件,格式为:(目的,标题,正文)
else:
print now_time
print("---------------------------------------------------------")
print("Info,CPU Used:%.2f%%")%cpu_avg
print("Info,Memory Used:%.2f%%")%mem_avg
system(0,0) #这两个0代表设置cpu和内存的阈值,前者为CPU,后者为内存
python做一个系统-用python做一个系统监控程序相关推荐
- python做副业_学习Python可以做哪些副业,你是不是感觉自己错过了一个亿?
另外小编整理了一套Python的学习资料需要的按以下步骤可获得! 1.评论 2.转发 3.关注 4.后台私信[python]即可获取! 人生苦短,我用Python. 近年来,Python凭借其简洁易入 ...
- 用pygame做一个简单的python小游戏---生命游戏
用pygame做一个简单的python小游戏-生命游戏 生命游戏(Game of Life) 生命游戏(Game of Life)是剑桥大学约翰·何顿·康威(John Horton Conway)教授 ...
- python做数据库管理系统_python+mysql做一个图书管理系统?
开发一个图书管理系统,首先需要对此项目进行一个简单的需求分析: 主要功能包括:图书信息 图书分类 用户信息 用户借阅统计 管理员 管理员权限 接下来可以进行数据库的设计,在这里我提供一个简单的数据库表 ...
- python字节码执行函数_做一个字节码追踪器,从内部理解 Python 的执行过程
最近我在研究 Python 的执行模型.我对 Python 内部的东西挺好奇,比如:类似 YIELDVALUE 和 YIELDFROM 此类操作码的实现:列表表达式.生成器表达式以及一些有趣的Pyth ...
- python宣传海报_用Python做一个令人发疯的海报
Python可以做海报? Python真的可以做海报吗? Python做海报,你确定不是在逗我? 重要的问题问了三遍,答案是真的可以! 今天我们就来用Python的一个比较好玩的模块来进行创作---- ...
- 用pygame做一个简单的python小游戏---贪吃蛇
用pygame做一个简单的python小游戏-贪吃蛇 贪吃蛇游戏博客链接:(方法一样,语言不一样) c++贪吃蛇:https://blog.csdn.net/weixin_46791942/artic ...
- 用pygame做一个简单的python小游戏---七彩同心圆
用pygame做一个简单的python小游戏-七彩同心圆 这个小游戏原是我同学python课的课后作业,并不是很难,就简单实现了一下,顺便加强一下pygame库的学习. 玩法:每次点击鼠标时,会以鼠标 ...
- python七彩同心圆_用pygame做一个简单的python小游戏---七彩同心圆
用pygame做一个简单的python小游戏---七彩同心圆 用pygame做一个简单的python小游戏-七彩同心圆 这个小游戏原是我同学python课的课后作业,并不是很难,就简单实现了一下,顺便 ...
- 使用ANTLR做一个简单的Python SQL语法解析器 - 推酷
使用ANTLR做一个简单的Python SQL语法解析器 - 推酷 使用ANTLR做一个简单的Python SQL语法解析器 - 推酷 posted on 2016-11-14 13:11 lexus ...
- python做项目日程表_Flask框架搭建一个日程表
前言 用Flask框架,SQLalchemy,SQlite 和Vertabelo 搭建一个日程表. 这个并不是最终产品,目的是展示python web开发的流程,欢迎不吝赐教! github下载源码 ...
最新文章
- php乱炖,linux使用crontab实现PHP执行定时任务 | 乱炖
- (原创)机器学习之numpy库中常用的函数介绍(一)
- Java Hotspot G1 GC的一些关键技术
- idea 调试技巧1
- python中数据类型转换_Python(二).数据类型,数据类型转换
- 黑鲨4游戏手机开启预热:4>5+6+7 比竞品更胜一筹
- linux系统下RocketMQ的集群搭建
- 系统学习 TypeScript(四)——变量声明的初步学习
- centos经常用到的一些文件
- “21天好习惯”第一期-6
- C++ SLT之map的用法总结
- Qt三种方式实现背景色和背景图(都可放缩,qss方式也可以)
- CAD设置超链接(网页版)
- 关于LocalDate、LocalTime、LocalDateTime
- 如何打造城市夜游景点文化IP
- android电视如何打开adb调试模式,分享解密某Android电视adb后门方法
- python 谷歌翻译 字数限制_Python谷歌翻译(防封版)
- docker 批量垃圾清理
- WindowsServer2016配置故障转移群集
- 重点解码效果总结#####论文阅读——《Towards a Human-like Open-Domain Chatbot》
热门文章
- R语言生成对数线性间隔数据序列(Log-linearly Spaced Sequences)
- R聚类(整群)抽样(Cluster Sampling)
- HMM+三个基本问题
- 影像组学视频学习笔记(33)-使用SimpleITK实现医学影像差值、Li‘s have a solution and plan.
- GEO/SRA数据库
- mysql5 数据类型,Mysql学习笔记5-----字段的数据类型
- docker from指令的含义_Docker中Dockerfile多From 指令存在的意义
- 查看 python 的版本 以及 python 的安装位置路径
- python opencv调节图片亮度与对比度
- typora行内公式怎么显示不了,怎么办?