使用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
随机推荐
- 记录一次axios请求造成的数组初始化失败
axios请求是一个异步的请求,简单来讲就是在做其他事情的时候可以把这个先放一边等其他的事情做完后再来做这件事件. 我之前这样调用了一个方法: mounted() { this.first() thi ...
- TableLaout
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" ...
- Address already in use: JVM_Bind:80 异常的解决办法
java.net.BindException: Address already in use: JVM_Bind:80 异常的解决办法 今天遇见了这个端口被占用问题 然后各种百度 先是说 用命令 ne ...
- js··BOM 浏览器对象模型
1.window.open(url,ways) url 是打开的网页地址 ways 打开的方式 _self 2.window.close() 3.浏览器用户信息 Window.navigator 4. ...
- Linux 6.8 源码安装MySQL8.0
搭建环境说明: 系统版本:Red Hat Enterprise Linux Server release 6.8 (Santiago) 内核版本:Linux 2.6.32-642.el6.x86_64 ...
- Spark:将DataFrame写入Mysql
Spark将DataFrame进行一些列处理后,需要将之写入mysql,下面是实现过程 1.mysql的信息 mysql的信息我保存在了外部的配置文件,这样方便后续的配置添加. //配置文件示例: [ ...
- php闭包的使用实例
$childrenNodes = array_filter($list, function($item) use($parentId){ return $item->node_pid == $p ...
- SQL Server初探
SQL Server的结构与Oracle不同,SQL Server里边可以包括很多的database,每个database有自己的表,用户等信息.比如目前有一个应用,应用的每个数据集都是一个datab ...
- Zuul网关总结
Zuul是Netflix开源的网关服务(gateway service)(https://github.com/Netflix/zuul),提供动态路由.监控.弹性.安全性等功能.最近在公司的项目中用 ...
- android 位置记录软件
行者 用的百度高德的方案,没有偏移问题endomondo,咕咚,行者.endomondo是国外软件,运行稳定,但GPS记录漂移比较严重:咕咚的GPS位置记录比较准确,缺点是容易崩溃,譬如记录过程中来个 ...