zzzynx
方法一:
 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()

 

分类:

技术点:

相关文章:

  • 2021-11-29
  • 2022-12-23
  • 2021-12-18
  • 2021-12-19
  • 2022-12-23
  • 2021-11-03
  • 2021-07-18
  • 2022-12-23
猜你喜欢
  • 2021-06-12
  • 2022-12-23
  • 2021-11-23
  • 2022-12-23
  • 2021-08-18
  • 2022-12-23
  • 2021-08-24
相关资源
相似解决方案