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 = 'xxxx@163.com'
receiver = 'xxx@163.com'
subject = '报警'
username = 'xxx@163.com'
password = 'xxxx'
msg = MIMEText(str,'plain', 'utf-8')
msg['Subject'] = Header(subject, 'utf-8')
msg['From'] = 'Tim<xxx@163.com>'
msg['To'] = "xxx@126.com"
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()