欢迎来到我的博客!

导航

python程序—系统检测

     监控系统内存,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[0]/1024**2)
    available_meom=int(meom[1]/1024**2)
    used_meom=int(meom[3]/1024**2)
    percent_meom=meom[2]
    meomdict={
        'total':total_meom,
        'available':available_meom,
        'used':used_meom,
        'percent':percent_meom
    }
    return meomdict

#cpu
def cpu_check():
    cpu = psutil.cpu_percent(1)
    return cpu

#硬盘
def disk_check(n): #可以选择监控电脑哪个磁盘,调用的时候传参即可
    disk = psutil.disk_usage(r'%s:'% n)
    total_disk=int(disk[0]/1024**3)
    used_disk=int(disk[1]/1024**3)
    free_disk=int(disk[2]/1024**3)
    percent_disk=disk[3]
    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 > 70:
        msg = '''
        电脑快要爆炸了!请立刻丢掉电脑紧急避险!
        cpu利用率:%s%%
        ''' % cpu
        sendmail('CPU过高!',msg)

    if meom['percent'] >80:
        msg = '''
        内存过高!都快卡成PPT了,请尽快处理!
        内存总大小:%sM
        内存剩余大小:%sM
        内存使用大小:%sM
        内存使用率:%s%%
        ''' % (meom.get('total'), meom.get('free'), meom.get('used'), meom.get('percent'))
        sendmail('内存过高!', msg)

    if disk_c['percent'] >80:
        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'] >80:
        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'] > 80:
        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()

 

    如果想要做到持续监控,只需要做一个计划任务,定时运行脚本即可!

 

posted on 2019-04-23 18:35  leeeeel  阅读(663)  评论(0编辑  收藏  举报