zoukankan      html  css  js  c++  java
  • 使用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()
  • 相关阅读:
    返回一个整数数组中最大子数组的和
    软件工程概论第五周学习进度
    软件工程概论第四周学习进度
    软件工程个人作业03
    软件工程概论第三周学习进度
    软件工程个人作业02
    软件工程概论学习进度第二周
    寻找水王
    第七周学习进度
    二维数组最大值
  • 原文地址:https://www.cnblogs.com/zzzynx/p/10758120.html
Copyright © 2011-2022 走看看