使用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
随机推荐
- 【Paywave】VISA Paywave - ICS category selection
[ICS category Selection] PCDA & IRWIN compliantContact InterfaceMagnetic Stripe TransactionConta ...
- ionic2简单分析
Angular2是一个全新的框架,它从ReactJS以及其他web移动框架借鉴了不少经验和优点,巨大的改进使得开 发体验和性能已经超越了Angular1,而且Ionic2无论是从UI交互效果和跨平台的 ...
- SDL播放YUV——循环
#include "SDL.h" #include "as_lesson_log.h" #define PATH_YUV420 "/sdcard/ou ...
- Sqoop简介
一 Sqoop是什么 Sqoop:SQL-to-Hadoop 连接传统关系型数据库和Hadoop的桥梁 把关系型数据库的数据导入到 Hadoop 系统 ( 如 HDFS.HBase 和 Hive) ...
- React 生命周期简介
React 中组件的生命周期会经历如下三个过程:装载过程.更新过程.卸载过程. 装载过程:组件实例被创建和插入 DOM 树的过程: 更新过程:组件被重新渲染的过程: 卸载过程:组件从 DOM 树 ...
- InsertSort
#include <bits/stdc++.h> using namespace std; #define MAXSIZE 200000 typedef int KeyType; type ...
- 引擎设计跟踪: 为什么Blade可以用Clang编译
最近在使用VS2015 Community, 在添加了shared items project, 并把源代码加入shared items, 添加Android工程编译的时候, 发现可以用Clang正常 ...
- 货币转换 I
描述 人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中: 人民币和美元间汇率固定为:1美元 = 6.78人民币. 程序可以接受人民币或美元输入,转换为美元或人民币输出.人民币 ...
- Oracle报错TNS-12532: TNS:invalid argument
今天一个同事遇到了一个oracle问题,在数据库本机通过sqlplus登录sys用户时报TNS-12532: TNS:invalid argument,这个错误. 造成这个错误的原因主要有三个,一般排 ...
- Actifio中如何分析Oracle备份恢复的报错
场景不同,可以分析的日志不同. 有关oracle备份 (L0/L1) 或者Oracle Log smart backups的日志:UDSAgent.log (on target host locate ...