輕鬆教你學會監控cpu,記憶體,磁碟

2021-09-19 15:33:28 字數 2069 閱讀 1345

import yagmail #匯入yagmail模組

import psutil #匯入psutil模組

def sendmail(subject,contents): #把郵件設定為函式,方便引用

#連線郵箱伺服器

yag = yagmail.smtp(user=『[email protected]』,password=『zjc123456789』,host=『smtp.163.com』)

#傳送郵件

yag.send(to=『[email protected]』,subject=subject, contents=contents)

#斷開連線

yag.close()

# 郵箱為本人的,password為客戶端授權密碼,可在自己的郵箱中設定

#分別把cpu,mem,disk設定函式,在彙總到乙個總的函式中,既美觀又方便呼叫。

本人以前把三個設定在乙個函式中,發現有很多缺點。

(1)**整體顯得比較亂(2)不能單獨呼叫(3)不方便傳引數等

def cpu_info():

cpu = psutil.cpu_percent(1) #測試1秒內cpu的使用率

return cpu #新增返回值方便呼叫

def mem_info():

mem = psutil.virtual_memory()

total_mem = int(mem[0]/1024/1024) #記憶體總量(m)

free_mem = int(mem[1]/1024/1024)#剩餘記憶體單位(m)

percent_mem = mem[2] #記憶體使用百分比

used_mem = int(mem[3]/1024/1024) #已用記憶體單位(m)

mem_dict =

return mem_dict #把返回值設定成字典,方便呼叫

def disk_info():

disk = psutil.disk_usage(『c:』)

total_disk = int(disk[0]/1024/1024/1024) #總磁碟大小單位為g

used_disk = int(disk[1]/1024/1024/1024)#已用磁碟單位為g

free_disk = int(disk[2]/1024/1024/1024)#空餘磁碟單位為g

percent_disk = disk[3] #磁碟使用百分比

disk_dict =

return disk_dict #同理記憶體,方便呼叫傳參

def main():

cpu = cpu_info()

mem = mem_info()

disk = disk_info()

msg = 『』』

cpu利用率:%s%% #%有特殊含義,需要再加乙個百分號轉義為普通含義

記憶體總大小:%sm

記憶體剩餘大小:%sm

記憶體使用大小:%sm

記憶體使用率:%s%%

硬碟總大小:%sg

硬碟使用大小:%sg

硬碟剩餘大小:%sg

硬碟使用率:%s%%

『』』 % (cpu,mem.get(『total_mem』),mem.get(『free_mem』),mem.get(『used_mem』),mem.get(『percent_mem』),disk.get(『total_disk』),disk.get(『used_disk』),disk.get(『free_disk』),disk.get(『percent_disk』))

if cpu > 1:

print(『cpu過高』)

sendmail(『cpu報警』,msg)

else:

print(『cpu正常』)

#也可以新增記憶體或者磁碟,本人只是做個簡單示例

ifname== 『main』: #直接輸入main+enter就可以引用main 這樣呼叫main算是一種約定俗成吧;也可以直接引用main,不過那樣不夠美觀。寫**不只要自己看的懂,讓讀者容易理解的程式才是好程式。。。。。。。。

main()

Linux監控CPU,記憶體,磁碟I O

簡單講講linux下監控 cpu 監控cpu,top命令能夠實時監控系統的執行狀態,並且可以按照cpu 記憶體和執行時間進行排序,同時top命令還可以通過互動式命令進行設定顯示,通過top命令可以檢視即時活躍的進行。記憶體 free命令可以檢視當前系統記憶體的使用情況 free m以mb為單位顯示系...

監控cpu 記憶體

pid 1 獲取程序pid echo pid interval 1 設定採集間隔 while true do echo date y m d h m s proc memlog.txt cat proc pid status grep e vmrss proc memlog.txt 獲取記憶體占用 ...

linux系統CPU,記憶體,磁碟,網路流量監控指令碼

bin sh eth eth0 eth1 get eth info awk while read line do echo line data echo name line awk if z data then echo data fidone sum eth echo ret 12321.txt ...