1. 程式人生 > >python寫監控併發警報郵件

python寫監控併發警報郵件

呼叫第三方模組:用pip軟體下載: 模組:psutil:它能夠輕鬆實現獲取系統執行的程序和系統利用率(包括CPU、記憶體、磁碟、網路等)資訊。它主要用來做系統監控,效能分析,程序管理。 import psutil psutil.cpu_count() #檢視cpu邏輯核數:開啟超執行緒之後 psutil.cpu_count(False) #檢視cpu物理核數 psutil.cpu_percent(1) #一秒鐘內cpu的使用率 psutil.cpu_percent(1,True) #每一核cpu的佔用率 psutil.virtual_memory() #記憶體使用率
print('%.2f%%' % res[2]) #給使用率保留兩位小數點並加上%。 psutil.disk_usage('C:') #檢視硬碟分割槽使用率 psutil.net_io_counters() #檢視網路流量   *浮點型別也可以比較大小,zifu串轉換成int型別要先轉換成浮點型別在轉換。 str —> float —> int 寫監控cpu指令碼:     #監控: import psutil import smtplib from email.mime.text import MIMEText
from email.header import Header #監控cpu使用率: def cpu_info(): cpu = psutil.cpu_percent(1) cpua = '%.2f%%' % cpu return cpua #監控記憶體使用率: def mem_info(): mem = psutil.virtual_memory() mema = '%.2f%%' % mem[2] return mema #監控硬碟使用率: def disk_info():
cd = psutil.disk_usage('C:') cdisk = '%.2f%%' % cd[3] dd = psutil.disk_usage('D:') ddisk = '%.2f%%' % dd[3] ed = psutil.disk_usage('E:') edisk = '%.2f%%' % ed[3] all = [cdisk,ddisk,edisk] return all #監控網路流量: def net_info(): net = psutil.net_io_counters() send = str(int(net[0]/8/1024/1024)) + 'M' recv = str(int(net[1]/8/1024/1024)) + 'M' all1 = [send,recv] return all1 def mail(str): sender = '[email protected]' receiver = '[email protected]' subject = '報警' username = '[email protected]' password = 'zl950629' msg = MIMEText(str,'plain', 'utf-8') msg['Subject'] = Header(subject, 'utf-8') msg['From'] = 'Tim<[email protected]>' msg['To'] = "[email protected]" smtp = smtplib.SMTP() smtp.connect('smtp.163.com') smtp.login(username, password) smtp.sendmail(sender, receiver, msg.as_string()) smtp.quit() def main(): a = cpu_info() b = mem_info() cd = disk_info()[0] dd = disk_info()[1] ed = disk_info()[2] ds = net_info()[0] dr = net_info()[1] all3 = ''' ===================== 你的cpu使用率為:%s ===================== 你的記憶體使用率為:%s ===================== 你的C盤使用率為:%s 你的D盤使用率為:%s 你的E盤使用率為:%s ===================== 您的network_send:%s 您的network_recv:%s ==================== ''' % (a,b,cd,dd,ed,ds,dr) aa = float(a[:-4]) if aa > 1: mail(all3) else: print('安全') main()