#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做一个系统监控程序相关推荐

  1. python做副业_学习Python可以做哪些副业,你是不是感觉自己错过了一个亿?

    另外小编整理了一套Python的学习资料需要的按以下步骤可获得! 1.评论 2.转发 3.关注 4.后台私信[python]即可获取! 人生苦短,我用Python. 近年来,Python凭借其简洁易入 ...

  2. 用pygame做一个简单的python小游戏---生命游戏

    用pygame做一个简单的python小游戏-生命游戏 生命游戏(Game of Life) 生命游戏(Game of Life)是剑桥大学约翰·何顿·康威(John Horton Conway)教授 ...

  3. python做数据库管理系统_python+mysql做一个图书管理系统?

    开发一个图书管理系统,首先需要对此项目进行一个简单的需求分析: 主要功能包括:图书信息 图书分类 用户信息 用户借阅统计 管理员 管理员权限 接下来可以进行数据库的设计,在这里我提供一个简单的数据库表 ...

  4. python字节码执行函数_做一个字节码追踪器,从内部理解 Python 的执行过程

    最近我在研究 Python 的执行模型.我对 Python 内部的东西挺好奇,比如:类似 YIELDVALUE 和 YIELDFROM 此类操作码的实现:列表表达式.生成器表达式以及一些有趣的Pyth ...

  5. python宣传海报_用Python做一个令人发疯的海报

    Python可以做海报? Python真的可以做海报吗? Python做海报,你确定不是在逗我? 重要的问题问了三遍,答案是真的可以! 今天我们就来用Python的一个比较好玩的模块来进行创作---- ...

  6. 用pygame做一个简单的python小游戏---贪吃蛇

    用pygame做一个简单的python小游戏-贪吃蛇 贪吃蛇游戏博客链接:(方法一样,语言不一样) c++贪吃蛇:https://blog.csdn.net/weixin_46791942/artic ...

  7. 用pygame做一个简单的python小游戏---七彩同心圆

    用pygame做一个简单的python小游戏-七彩同心圆 这个小游戏原是我同学python课的课后作业,并不是很难,就简单实现了一下,顺便加强一下pygame库的学习. 玩法:每次点击鼠标时,会以鼠标 ...

  8. python七彩同心圆_用pygame做一个简单的python小游戏---七彩同心圆

    用pygame做一个简单的python小游戏---七彩同心圆 用pygame做一个简单的python小游戏-七彩同心圆 这个小游戏原是我同学python课的课后作业,并不是很难,就简单实现了一下,顺便 ...

  9. 使用ANTLR做一个简单的Python SQL语法解析器 - 推酷

    使用ANTLR做一个简单的Python SQL语法解析器 - 推酷 使用ANTLR做一个简单的Python SQL语法解析器 - 推酷 posted on 2016-11-14 13:11 lexus ...

  10. python做项目日程表_Flask框架搭建一个日程表

    前言 用Flask框架,SQLalchemy,SQlite 和Vertabelo 搭建一个日程表. 这个并不是最终产品,目的是展示python web开发的流程,欢迎不吝赐教! github下载源码 ...

最新文章

  1. php乱炖,linux使用crontab实现PHP执行定时任务 | 乱炖
  2. (原创)机器学习之numpy库中常用的函数介绍(一)
  3. Java Hotspot G1 GC的一些关键技术
  4. idea 调试技巧1
  5. python中数据类型转换_Python(二).数据类型,数据类型转换
  6. 黑鲨4游戏手机开启预热:4>5+6+7 比竞品更胜一筹
  7. linux系统下RocketMQ的集群搭建
  8. 系统学习 TypeScript(四)——变量声明的初步学习
  9. centos经常用到的一些文件
  10. “21天好习惯”第一期-6
  11. C++ SLT之map的用法总结
  12. Qt三种方式实现背景色和背景图(都可放缩,qss方式也可以)
  13. CAD设置超链接(网页版)
  14. 关于LocalDate、LocalTime、LocalDateTime
  15. 如何打造城市夜游景点文化IP
  16. android电视如何打开adb调试模式,分享解密某Android电视adb后门方法
  17. python 谷歌翻译 字数限制_Python谷歌翻译(防封版)
  18. docker 批量垃圾清理
  19. WindowsServer2016配置故障转移群集
  20. 重点解码效果总结#####论文阅读——《Towards a Human-like Open-Domain Chatbot》

热门文章

  1. R语言生成对数线性间隔数据序列(Log-linearly Spaced Sequences)
  2. R聚类(整群)抽样(Cluster Sampling)
  3. HMM+三个基本问题
  4. 影像组学视频学习笔记(33)-使用SimpleITK实现医学影像差值、Li‘s have a solution and plan.
  5. GEO/SRA数据库
  6. mysql5 数据类型,Mysql学习笔记5-----字段的数据类型
  7. docker from指令的含义_Docker中Dockerfile多From 指令存在的意义
  8. 查看 python 的版本 以及 python 的安装位置路径
  9. python opencv调节图片亮度与对比度
  10. typora行内公式怎么显示不了,怎么办?