• 使用python函数持续监控电脑cpu使用率、内存、c盘使用率等


    方法一:
     1  import time       导入time模块
     2  import psutil     导入psutil模块
     3  def func():
     4      while True:                -------》持续监控得while循环
     5          mem = psutil.virtual_memory()      ----》监控物理内存
     6          disk = psutil.disk_usage(r'c:')    ----》监控硬盘
     7          cpu = psutil.cpu_percent(1)   -----》cpu使用率监控
     8          if cpu > 10:
     9              print('你的cpu顶不住了,已经使用了%s'%cpu)   使用占位符
    10 
    11          else:
    12              print('你的cpu情况还行噢,已经使用了%s'%cpu)
    13          if mem[2] > 70:
    14              print('你的物理内存顶不住了,占用率为%s'%mem[2])
    15           else:
    17              print('你的内存情况还行噢,占用率为%s'%mem[2])
    18           if disk[3] > 70:
    20              print('你的C盘里放了多少资源啊,使用率高达%s'%disk[3])
    21           else:
    23              print('C盘里东西不多,占用了%s'%disk[3])
    24              time.sleep(3)       ----》睡三秒

    方法二:(传参,只举例cpu使用率监控)

     1  import time
     2  import psutil
     3  def func(cpu):       ----》上题也可以使用传参来操作
     4       while True:
     5           if cpu > 14:
     6               print('你的cpu顶不住了,已经使用了%s'%cpu)
     7            else:
     9               print('你的cpu情况还行噢,已经使用了%s'%cpu)
    10               time.sleep(3)
    11   func(cpu=psutil.cpu_percent(1))  -----》以key,value的形式调用一个值传给形参然后再到函数体中,这里的值为cpu *

     完善版本

     1 #连接邮箱服务器
     2 import yagmail          #请先下载yagmail包,再导入
     3 import psutil           #导入psutil模块
     4 def mail(subject,contents):      ---》形参为邮件的标题和内容
     5     yag = yagmail.SMTP(user='z1065132644@163.com', password='yn369369', host='smtp.163.com')  passwd为授权的密码不是登陆密码
     6     #发送邮件
     7     yag.send(to='z1065132644@163.com',subject=subject, contents=contents)    ————》定义变量subject和contents
     8     #断开连接
     9     yag.close()
    10 
    11 # import psutil
    12 def cpu_info():    ----》函数名尽可能切合内容
    13     cpu = psutil.cpu_percent(1)
    14     return cpu     ----》返回cpu,可以被调用,此return的结果就是调用的结果
    15 res=cpu_info()     ----》给调用结果赋值。可以省略,下同
    16 
    17 def mem_info():
    18     mem = psutil.virtual_memory()   ---》通过ps模块输出内存情况
    19     info1={'mem_total':mem[0],'mem_free':mem[1],'mem_percent':mem[2],'mem_used':mem[3]} --》将内存情况放入一个字典,方便调用
    20     return info1
    21 res2=mem_info()
    22 
    23 def disk_info():
    24     disk = psutil.disk_usage(r'c:')  ---》(r'c:')为查看盘的固定写法
    25     info2 = {'total': disk[0], 'used': disk[1], 'free': disk[2], 'percent': disk[3]}   ---》同样写入一个字典
    26     return info2
    27 res3=disk_info()
    28 
    29 def main():        ----->定义一个主函数
    30     m_cpu = res
    31     m_mem = res2
    32     m_disk = res3    --->将各个分函数的调用结果当作函数体输入
    33     msg='''         ---》赋值msg整个的监控情况,cpu,内存和磁盘使用等
    34     cpu使用率%s
    35     内存总量%sM      ---》使用占位符,单位,注意%%为一个百分比的固定写法
    36     内存剩余%sM
    37     内存使用率%s
    38     内存使用量%sM
    39     磁盘总量%sGB
    40     磁盘使用量%sGB
    41     磁盘剩余量%sGB
    42     磁盘使用率%s%%
    43     '''            ---》 换行用 
    44 %(m_cpu,int(m_mem.get('mem_total')/1024/1024),int(m_mem['mem_free']/1024/1024),m_mem['mem_percent'],
    int(m_mem['mem_used']/1024/1024),int(m_disk['total']/1024/1024/1024),int(m_disk['used']/1024/1024/1024),
    int(m_disk['free']/1024/1024/1024),m_disk['percent']) --》int()取整数 46 print(msg) ---》输出整个情况 47 if m_cpu >50: ---》设置报警值,下同 48 mail('cpu报警',msg) ---》给分函数mail的形参传参 49 else: 50 print('cpu正常') 51 if m_mem['mem_percent'] > 50: 52 print('悠着点,内存占用过半了') 53 else: 54 print('relax') 55 if m_disk['percent'] > 50: 56 print('悠着点,磁盘快炸了') 57 else: 58 print('放轻松,没事哦') 59 60 if __name__=='__main__': --》主函数调用固定格式 61 main()
  • 相关阅读:
    MongoDB 释放磁盘空间 db.runCommand({repairDatabase: 1 })
    RK 调试笔记
    RK Android7.1 拨号
    RK Android7.1 移植gt9271 TP偏移
    RK Android7.1 定制化 itvbox 盒子Launcher
    RK Android7.1 双屏显示旋转方向
    RK Android7.1 设置 内存条作假
    RK Android7.1 设置 蓝牙 已断开连接
    RK Android7.1 进入Camera2 亮度会增加
    RK 3128 调触摸屏 TP GT9XX
  • 原文地址:https://www.cnblogs.com/zzzynx/p/10758120.html
Copyright © 2020-2023  润新知