使用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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM