zoukankan      html  css  js  c++  java
  • 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()

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

  • 相关阅读:
    文件工具类之FileUtils
    JAVA8日期工具类
    mybatis模糊查询匹配汉字查询不出来数据,匹配字符和数字却可以的问题解决
    问到ConcurrentHashMap不要再提Segment了
    开发中常用工具
    Spring 如何解决循环依赖?
    JVM8基础概念总结
    String字符串相等判断
    面试再也不怕问到HashMap(二)
    面试再也不怕问到HashMap(一)
  • 原文地址:https://www.cnblogs.com/leeeel/p/10758148.html
Copyright © 2011-2022 走看看