监控系统内存,CPU,硬盘的使用情况,到达阈值时会自动发送邮件报警!
import yagmail
import psutil def sendmail(subject,contents):
#连接邮箱服务器
yag = yagmail.SMTP(user='xxxxxxxxxxx',password='xxxxxx',host='smtp.163.com')
# yag = yagmail.SMTP(user='发件人邮箱',password='授权登录密码',host='smtp.163.com')
#发送邮件
yag.send(to='xxxxxxxxxxxx',subject=subject, contents=contents)
# yag.send(to='收件人邮箱',subject=主题, contents=内容)
#断开连接
yag.close() #内存
def meomory_check():
meom= psutil.virtual_memory()
total_meom=int(meom[]/**)
available_meom=int(meom[]/**)
used_meom=int(meom[]/**)
percent_meom=meom[]
meomdict={
'total':total_meom,
'available':available_meom,
'used':used_meom,
'percent':percent_meom
}
return meomdict #cpu
def cpu_check():
cpu = psutil.cpu_percent()
return cpu #硬盘
def disk_check(n): #可以选择监控电脑哪个磁盘,调用的时候传参即可
disk = psutil.disk_usage(r'%s:'% n)
total_disk=int(disk[]/**)
used_disk=int(disk[]/**)
free_disk=int(disk[]/**)
percent_disk=disk[]
diskdict={
'total':total_disk,
'used' :used_disk,
'free':free_disk,
'percent':percent_disk
}
return diskdict def main():
meom=meomory_check()
cpu=cpu_check()
disk_c=disk_check('c')#监控C盘,传的参数必须是字符形式,例如:'c'
disk_d=disk_check('d')
disk_e=disk_check('e') if cpu > :
msg = '''
电脑快要爆炸了!请立刻丢掉电脑紧急避险!
cpu利用率:%s%%
''' % cpu
sendmail('CPU过高!',msg) if meom['percent'] >:
msg = '''
内存过高!都快卡成PPT了,请尽快处理!
内存总大小:%sM
内存剩余大小:%sM
内存使用大小:%sM
内存使用率:%s%%
''' % (meom.get('total'), meom.get('free'), meom.get('used'), meom.get('percent'))
sendmail('内存过高!', msg) if disk_c['percent'] >:
msg = '''
硬盘c内存严重不足!请尽快整理!清除无用文件!
硬盘c总大小:%sM
硬盘c剩余大小:%sM
硬盘c使用大小:%sM
硬盘c使用率:%s%%
''' % (disk_c.get('total'),disk_c.get('used'), disk_c.get('free'), disk_c.get('percent'))
sendmail('硬盘c内存严重不足!', msg) if disk_d['percent'] >:
msg = '''
硬盘d内存严重不足!请尽快整理!清除无用文件!
硬盘d总大小:%sM
硬盘d剩余大小:%sM
硬盘d使用大小:%sM
硬盘d使用率:%s%%
''' % (disk_d.get('total'),disk_d.get('used'), disk_d.get('free'), disk_d.get('percent'))
sendmail('硬盘d内存严重不足!', msg) if disk_e['percent'] > :
msg = '''
硬盘e内存严重不足!请尽快整理!清除无用文件!
硬盘e总大小:%sM
硬盘e剩余大小:%sM
硬盘e使用大小:%sM
硬盘e使用率:%s%%
''' % (disk_e.get('total'), disk_e.get('used'), disk_e.get('free'), disk_e.get('percent'))
sendmail('硬盘e内存严重不足!', msg) if __name__ == '__main__':
main()
如果想要做到持续监控,只需要做一个计划任务,定时运行脚本即可!