python监控CPU/内存/磁盘,超过指定百分比,发送邮件
#!/usr/bin/python #coding:utf-8 #导入psutil模块 import psutil import yagmail def mail(subject,contents): #形参为邮件的标题和内容 yag = yagmail.SMTP(user='zhangweihappy8@163.com', password='xxx', host='smtp.163.com') #passwd为授权的密码不是登陆密码 #发送邮件 yag.send(to='zui_city_zhang@163.com',subject=subject, contents=contents) #断开连接 yag.close() def cpu_info(): cpu = psutil.cpu_percent(1) return cpu res=cpu_info() def mem_info(): mem = psutil.virtual_memory() info1={'mem_total':mem[0],'mem_free':mem[1],'mem_percent':mem[2],'mem_used':mem[3]} return info1 res2=mem_info() def disk_info(): disk = psutil.disk_usage('/') info2 = {'total': disk[0], 'used': disk[1], 'free': disk[2], 'percent': disk[3]} #同样写入一个字典 return info2 res3=disk_info() def main(): m_cpu = res m_mem = res2 m_disk = res3 #将各个分函数的调用结果当作函数体输入 msg=''' cpu使用率%s 内存总量%sM 内存剩余%sM 内存使用率%s 内存使用量%sM 磁盘总量%sGB 磁盘使用量%sGB 磁盘剩余量%sGB 磁盘使用率%s%% '''%(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']) print(msg) if m_cpu >50: mail('cpu报警',msg) else: print('cpu正常') if m_mem['mem_percent'] > 50: mail('内存占用过半',msg) else: print('relax') if m_disk['percent'] > 50: mail('磁盘快炸了',msg) else: print('磁盘正常') if __name__=='__main__': main()
天下难事,必作于易;天下大事,必作于细