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程序中的进程操作-----开启多进程 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创 ...
随机推荐
- Linux/Windows 应用程序开发
一.基础知识 虽然写的都是代码,但是代码运行在哪个级别什么位置,还是需要做好定位,这样才心中有数. 1.1 Linux [转载]讲述了中断.系统调用.Linux APIs和Shell的基本知识. 1 ...
- pc端字体大小计算以及echart中字体大小计算
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- MySQL主从复制延迟的问题 #M1002#
MySQL主从复制延迟的问题 #M1002# https://mp.weixin.qq.com/s/NwFGER-qn2xQ5TnG-php1Q 更为糟糕的是,MySQL主从复制在大事务下的延迟.同样 ...
- 【tomcat启动失败问题】Unable to start embedded Tomcat
启动spring boot 项目后抛出如下异常: org.springframework.context.ApplicationContextException: Unable to start em ...
- nc_netcat命令
它可以打开TCP连接.发送UDP数据包.监听任意TCP和UDP端口,进行端口扫描,处理IPv4和IPv6 这个命令适用于写脚本 nc -z -w 10 ip port -z:指定NC只应扫描侦听守护 ...
- vue 点击图片放大
文档:https://www.npmjs.com/package/vue-directive-image-previewer [只能弹框查看 不能关闭和播放下一张,其他功能使用别的插件] 安装: np ...
- linux kettle
https://blog.csdn.net/zzq900503/article/details/79110810
- python基础语法-->多项分支-->巢状分支
# ### 多项分支 """ if 条件表达式: codel1... codel1... else 条件表达式 coedl2.. coedl2.. else 条件表达式 ...
- Nginx实现负载均衡的简单案例
七层负载均衡的实现(Nginx): 基于URL等应用层信息的负载均衡,一般使用Nginx来实现 Nginx的proxy是它一个很强大的功能,实现了7层负载均衡 功能强大.性能卓越.运行稳定 配置简单灵 ...
- package,继承,访问修饰符
1.package 包(package),用于管理程序中的类,可用于处理类的同名问题. 1.1定义package的方法 package 包名; package用于定义包,必须写在源文件有效代码的第一句 ...