python程序—系统检测
监控系统内存,CPU,硬盘的使用情况,到达阈值时会自动发送邮件报警!
import yagmail
import psutil def sendmail(subject,contents):
#连接邮箱服务器
yag = yagmail.SMTP(user='xxxxxxxxxxx',password='xxxxxx',host='smtp.163.com')
# yag = yagmail.SMTP(user='发件人邮箱',password='授权登录密码',host='smtp.163.com')
#发送邮件
yag.send(to='xxxxxxxxxxxx',subject=subject, contents=contents)
# yag.send(to='收件人邮箱',subject=主题, contents=内容)
#断开连接
yag.close() #内存
def meomory_check():
meom= psutil.virtual_memory()
total_meom=int(meom[]/**)
available_meom=int(meom[]/**)
used_meom=int(meom[]/**)
percent_meom=meom[]
meomdict={
'total':total_meom,
'available':available_meom,
'used':used_meom,
'percent':percent_meom
}
return meomdict #cpu
def cpu_check():
cpu = psutil.cpu_percent()
return cpu #硬盘
def disk_check(n): #可以选择监控电脑哪个磁盘,调用的时候传参即可
disk = psutil.disk_usage(r'%s:'% n)
total_disk=int(disk[]/**)
used_disk=int(disk[]/**)
free_disk=int(disk[]/**)
percent_disk=disk[]
diskdict={
'total':total_disk,
'used' :used_disk,
'free':free_disk,
'percent':percent_disk
}
return diskdict def main():
meom=meomory_check()
cpu=cpu_check()
disk_c=disk_check('c')#监控C盘,传的参数必须是字符形式,例如:'c'
disk_d=disk_check('d')
disk_e=disk_check('e') if cpu > :
msg = '''
电脑快要爆炸了!请立刻丢掉电脑紧急避险!
cpu利用率:%s%%
''' % cpu
sendmail('CPU过高!',msg) if meom['percent'] >:
msg = '''
内存过高!都快卡成PPT了,请尽快处理!
内存总大小:%sM
内存剩余大小:%sM
内存使用大小:%sM
内存使用率:%s%%
''' % (meom.get('total'), meom.get('free'), meom.get('used'), meom.get('percent'))
sendmail('内存过高!', msg) if disk_c['percent'] >:
msg = '''
硬盘c内存严重不足!请尽快整理!清除无用文件!
硬盘c总大小:%sM
硬盘c剩余大小:%sM
硬盘c使用大小:%sM
硬盘c使用率:%s%%
''' % (disk_c.get('total'),disk_c.get('used'), disk_c.get('free'), disk_c.get('percent'))
sendmail('硬盘c内存严重不足!', msg) if disk_d['percent'] >:
msg = '''
硬盘d内存严重不足!请尽快整理!清除无用文件!
硬盘d总大小:%sM
硬盘d剩余大小:%sM
硬盘d使用大小:%sM
硬盘d使用率:%s%%
''' % (disk_d.get('total'),disk_d.get('used'), disk_d.get('free'), disk_d.get('percent'))
sendmail('硬盘d内存严重不足!', msg) if disk_e['percent'] > :
msg = '''
硬盘e内存严重不足!请尽快整理!清除无用文件!
硬盘e总大小:%sM
硬盘e剩余大小:%sM
硬盘e使用大小:%sM
硬盘e使用率:%s%%
''' % (disk_e.get('total'), disk_e.get('used'), disk_e.get('free'), disk_e.get('percent'))
sendmail('硬盘e内存严重不足!', msg) if __name__ == '__main__':
main()
如果想要做到持续监控,只需要做一个计划任务,定时运行脚本即可!
python程序—系统检测的更多相关文章
- 如何在Windows系统中设置Python程序定时运行
文章出处:http://blog.csdn.net/wwy11/article/details/51100432 首先,我们肯定是要用到Windows下的[计划任务]功能 之后点击右侧的[创建基本任务 ...
- Windows系统中设置Python程序定时运行方法
Windows系统中设置Python程序定时运行方法 一.环境 win7 + Python3.6 二.步骤 1,在Windows开始菜单中搜索“计划任务”,并且点击打开“计划任务”: 2.点击“创建基 ...
- 将Python 程序打包成 .exe格式入门
PyInstaller PyInstaller 是一个十分有用的第三方库,可以用来打包 python 应用程序,打包完的程序就可以在没有安装 Python 解释器的机器上运行了. 它能够在 Windo ...
- 在Python程序中的进程操作,multiprocess.Process模块
在python程序中的进程操作 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起 ...
- 月薪3万的python程序员都看了这本书
想必大家都看过吧 Python编程从入门到实践 全书共有20章,书中的简介如下: 本书旨在让你尽快学会 Python ,以便能够编写能正确运行的程序 —— 游戏.数据可视化和 Web 应用程序,同时掌 ...
- python 全栈开发,Day38(在python程序中的进程操作,multiprocess.Process模块)
昨日内容回顾 操作系统纸带打孔计算机批处理 —— 磁带 联机 脱机多道操作系统 —— 极大的提高了CPU的利用率 在计算机中 可以有超过一个进程 进程遇到IO的时候 切换给另外的进程使用CPU 数据隔 ...
- 用XYNTService把Python程序变为服务
1. XYNTService的使用 1.1. 介绍 1.2. XYNTService 2. 用XYNTService把Python程序变为服务 1. XYNTService的使用 1.1. 介绍 通常 ...
- 将 Python 程序打包成 .exe 文件
1.简介 做了一个excel的风控模板,里面含有宏,我用python的第三方xlwings部署到linux后发现,linux环境并不支持xlwings. Python 程序都是脚本的方式,一般是在解析 ...
- Python程序中的进程操作--—--开启多进程
Python程序中的进程操作-----开启多进程 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创 ...
随机推荐
- pandas(三)
合并数据集: 创建一个能创建dataframe的函数 def make_data(cols,ind): data={c:[strc(c)+str(i) for i in ind] for c in c ...
- Java学习--抽象类和接口
https://www.cnblogs.com/dolphin0520/p/3811437.html 抽象类 先了解一下[抽象方法]—一种特殊的方法,只有声明,没有具体的实现 abstract vo ...
- netcorec程序部署配置
IIS方式: 1:iis配置netcore发布的文件 2:iis设置运行库无托管模式 3:安装DotNetCore.1.0.4_1.1.1-WindowsHosting.exe 4:安装dotnet- ...
- webpack(5) -开发环境
使用 source map (仅用于开发环境) 当 webpack 打包源代码时,可能会很难追踪到 error(错误) 和 warning(警告) 在源代码中的原始位置.例如,如果将三个源文件(a.j ...
- OO第二次博客
过去三周里,我们完成了多线程电梯的程序设计与构造.这是我第一次接触多线程编程.我感觉最大的困难在于多个线程中的操作,谁先谁后,不是像以前写的单线程程序那样严格确定,所以心里常常会比较慌.尤其是因为多线 ...
- 2#第一个Java程序
好,我们来写一个最简单的Java程序: public class HelloWorld{ public static void main(String[] argc){ System.out.prin ...
- Kafka笔记4(消费者)
消费者和消费群组: Kafka消费者从属于消费者群组,一个群组里的消费者订阅的是同一个主题,每个消费者接收主题的一部分分区消息 消费者的数量不要超过主题分区的数量,多余的消费者只会被闲置 一个主题可以 ...
- 大部分教程不会告诉你的 12 个 JS 技巧
from:https://www.infoq.cn/article/eSYzcMZK4PkOzZC_68fv 在这篇文章中,作者将分享 12 个非常有用的 JavaScript 技巧,可以帮助你写出简 ...
- vue进阶--外卖商家页
一.准备工作 1.vue特性:轻量级.简洁.高效.组件化.数据驱动 2.技术分析:使用vue- resource与后端交互(ajax通信,ie9+) 使用vue-router作为前端路由 bet ...
- CentOS 7 安装Redis4.0
redis是一种内存型的NoSQL数据库,优点是快,常用来做缓存用 redis存储数据的方法是以key-value的形式 value类型支持字符串,列表,哈希等多种类型 环境 : CnetOS7 ...