使用python函数持续监控电脑cpu使用率、内存、c盘使用率等
方法一:
import time 导入time模块
import psutil 导入psutil模块
def func():
while True: -------》持续监控得while循环
mem = psutil.virtual_memory() ----》监控物理内存
disk = psutil.disk_usage(r'c:') ----》监控硬盘
cpu = psutil.cpu_percent() -----》cpu使用率监控
if cpu > :
print('你的cpu顶不住了,已经使用了%s'%cpu) 使用占位符 else:
print('你的cpu情况还行噢,已经使用了%s'%cpu)
if mem[] > :
print('你的物理内存顶不住了,占用率为%s'%mem[])
else:
print('你的内存情况还行噢,占用率为%s'%mem[])
if disk[] > :
print('你的C盘里放了多少资源啊,使用率高达%s'%disk[])
else:
print('C盘里东西不多,占用了%s'%disk[])
time.sleep() ----》睡三秒
方法二:(传参,只举例cpu使用率监控)
import time
import psutil
def func(cpu): ----》上题也可以使用传参来操作
while True:
if cpu > :
print('你的cpu顶不住了,已经使用了%s'%cpu)
else:
print('你的cpu情况还行噢,已经使用了%s'%cpu)
time.sleep()
func(cpu=psutil.cpu_percent()) -----》以key,value的形式调用一个值传给形参然后再到函数体中,这里的值为cpu *
完善版本
#连接邮箱服务器
import yagmail #请先下载yagmail包,再导入
import psutil #导入psutil模块
def mail(subject,contents): ---》形参为邮件的标题和内容
yag = yagmail.SMTP(user='z1065132644@163.com', password='yn369369', host='smtp.163.com') passwd为授权的密码不是登陆密码
#发送邮件
yag.send(to='z1065132644@163.com',subject=subject, contents=contents) ————》定义变量subject和contents
#断开连接
yag.close() # import psutil
def cpu_info(): ----》函数名尽可能切合内容
cpu = psutil.cpu_percent()
return cpu ----》返回cpu,可以被调用,此return的结果就是调用的结果
res=cpu_info() ----》给调用结果赋值。可以省略,下同 def mem_info():
mem = psutil.virtual_memory() ---》通过ps模块输出内存情况
info1={'mem_total':mem[],'mem_free':mem[],'mem_percent':mem[],'mem_used':mem[]} --》将内存情况放入一个字典,方便调用
return info1
res2=mem_info() def disk_info():
disk = psutil.disk_usage(r'c:') ---》(r'c:')为查看盘的固定写法
info2 = {'total': disk[], 'used': disk[], 'free': disk[], 'percent': disk[]} ---》同样写入一个字典
return info2
res3=disk_info() def main(): ----->定义一个主函数
m_cpu = res
m_mem = res2
m_disk = res3 --->将各个分函数的调用结果当作函数体输入
msg=''' ---》赋值msg整个的监控情况,cpu,内存和磁盘使用等
cpu使用率%s
内存总量%sM ---》使用占位符,单位,注意%%为一个百分比的固定写法
内存剩余%sM
内存使用率%s
内存使用量%sM
磁盘总量%sGB
磁盘使用量%sGB
磁盘剩余量%sGB
磁盘使用率%s%%
'''\ ---》 换行用 \
%(m_cpu,int(m_mem.get('mem_total')//),int(m_mem['mem_free']//),m_mem['mem_percent'],
int(m_mem['mem_used']//),int(m_disk['total']///),int(m_disk['used']///),
int(m_disk['free']///),m_disk['percent']) --》int()取整数
print(msg) ---》输出整个情况
if m_cpu >: ---》设置报警值,下同
mail('cpu报警',msg) ---》给分函数mail的形参传参
else:
print('cpu正常')
if m_mem['mem_percent'] > :
print('悠着点,内存占用过半了')
else:
print('relax')
if m_disk['percent'] > :
print('悠着点,磁盘快炸了')
else:
print('放轻松,没事哦') if __name__=='__main__': --》主函数调用固定格式
main()
使用python函数持续监控电脑cpu使用率、内存、c盘使用率等的更多相关文章
- 监控电脑CPU,内存,文件大小,硬盘空间,IP,用户名
public class MonitorTools { /// <summary> /// 获取具体进程的内存,线程等参数情况 /// </summary> /// <p ...
- Golang获取CPU、内存、硬盘使用率
Golang获取CPU.内存.硬盘使用率 工具包 go get github.com/shirou/gopsutil 实现 func GetCpuPercent() float64 { percent ...
- 监控操作系统的CPU、内存、磁盘
Linux 四大件:CPU.内存.磁盘.网络 CPU 就像人的大脑,主要负责相关事情的判断以及实际处理的机制. CPU的性能主要体现在其运行程序的速度上.影响运行速度的性能指标包括CPU的工作频率.C ...
- php获取linux服务器CPU、内存、硬盘使用率的实现代码
define("MONITORED_IP", "172.16.0.191"); //被监控的服务器IP地址 也就是本机地址 define("DB_SE ...
- linux服务器性能(网卡流量、CPU、内存、磁盘使用率)监控
广义的网站的监控涵盖所有的非业务行为的数据采集与管理,包括数据分析师和产品设计师使用的网站用户行为日志.业务运行数据,以及供运维工程师和开发工程师使用的性能统计数据等. 本文主要是通过shell脚本来 ...
- python开发--python函数-(持续更新)
1. 打印 : print() # 打印,输出 2. 变量 : var = 'hello' # 变量var , 把'hello' 赋值给变量 var 3. if 函数 : # 代码块 4个空格或者一个 ...
- linux检查系统CPU,内存,磁盘使用率
#!/bin/bash CPU=`top -bn 1 -i -c | sed -n '3p' | awk -F ':' '{print$2}' | awk '{print$1}'` MEM=`free ...
- Zabbix通过SNMP监控多核CPU使用率时, 计算CPU平均使用率
环境:没有Agent,只能通过SNMP监控时,需要获取多核CPU的平均使用率. ZABBIX的使用SNMP监控CPU使用率时,由于设备都是多核CPU,监控的都是单独某一核心的使用率,但单独某一核使用率 ...
- Python获取CPU、内存使用率以及网络使用状态代码
Python获取CPU.内存使用率以及网络使用状态代码_python_脚本之家 http://www.jb51.net/article/134714.htm
随机推荐
- 在Eclipse中使用版本管理工具SVN
近日工程中,逐渐感觉到原来复制粘贴代码的笨重,突然想起以前有人和我说起过Git和SVN之类的版本管理工具.由于平时主要是写Java代码,所以能够在Eclipse中使用SVN工具进行版本管理就可以说是很 ...
- Spring事务<tx:annotation-driven/>的理解(Controller使用@Transactional)
在使用Spring的时候,配置文件中我们经常看到 annotation-driven 这样的注解,其含义就是支持注解,一般根据前缀 tx.mvc 等也能很直白的理解出来分别的作用. <tx:an ...
- 51Nod - 1433 0和5 找规律
小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5.小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数.使得这个数尽可能大,而且可以被90整除. 注意: 1.这个数没有前 ...
- 你想知道吗?come
从大二接触Java开始,到现在也差不多三个年头了.从最基础的HTML.CSS到最后的SSH自己都是一步一个脚印走出来的,其中开心过.失落过.寂寞过.虽然是半道出家但是经过自己的努力也算是完成了“学业” ...
- javascript第一个作业之网页计算器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 个性化自己的DOS窗口
就是为了好看吧,感觉没啥大用 ============= 首先创建一个文本,写下如下命令 @echo off color D echo ======================== echo == ...
- BOM模型中常用对象 定义计数器 网页跳转 网页前进后退
今天上午学了的BOM模型中常用对象,了解了一部分的属性 For循环的规律 外层循环控制行 内层循环控制列 <!doctype html> <html> <head> ...
- 窗函数法设计FIR滤波器参数特征表
- Game Development Patterns and Best Practices (John P. Doran / Matt Casanova 著)
https://github.com/PacktPublishing/Game-Development-Patterns-and-Best-Practices https://github.com/m ...
- eclipse项目改为maven项目导致svn无法比较历史数据的解决办法
这个问题没有找到合适的答案,最终自己想出了一个解决方案,在此记录下. 问题描述 在将老的eclipse项目重构为maven项目时,我这边是新建了一个maven项目,然后将对应的数据分别放到相应的位置, ...