python寫監控併發警報郵件
阿新 • • 發佈:2018-11-21
呼叫第三方模組:用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()