Linux 发邮件磁盘空间监控(python)

1077次阅读  |  发布于5年以前

核心代码:


    #!/usr/bin/python
    # -*- coding: UTF-8 -*-


    import smtplib
    import os
    import commands,time 
    from email.mime.text import MIMEText
    #from email import MIMEText
    disk_free=os.popen('df -lh')
    list_disk=disk_free.read()
    mailto_list=["2880329185@qq.com","2881280685@qq.com","2880089704@qq.com","2880329180@qq.com"]
    mail_host="smtp.139.com" 
    mail_user="user"  
    mail_pass="password"  
    mail_postfix="jljgl@.com" 
    use01=commands.getstatusoutput("df -lh|awk '{print $4}'|grep '%'|awk -F '%' '{print $1}'|grep -v Use")
    use02=commands.getstatusoutput("df -lh|awk '{print $5}'|grep '%'|awk -F '%' '{print $1}'|grep -v Use")
    getrecord=commands.getstatusoutput("cat /home/oracle/script/mail.log|awk '{print $1}'")
    gettime=commands.getstatusoutput("cat /home/oracle/script/mail.log|awk '{print $2}'")


    free01=use01[1]
    free02=use02[1]+'\n'+use01[1]
    new_time=time.strftime("%Y%m%d", time.localtime())


    def send_mail(to_list,sub,content):
      me=mail_postfix
      msg = MIMEText(content,_subtype='plain',_charset='gb2312')
      msg['Subject'] = sub
      msg['From'] = me
      msg['To'] = ";".join(to_list)
      try:
        server = smtplib.SMTP()
        server.connect(mail_host)
        server.login(mail_user,mail_pass)
        server.sendmail(me, to_list, msg.as_string())
        server.close()
        return True
      except SyntaxError:
        pass
        return False
    if __name__ == '__main__':
        if free02>30:
            id=0
            if new_time>gettime[1]:
                while 1:
                    getrecord=commands.getstatusoutput("cat /home/oracle/script/mail.log|awk '{print $1}'")
                    id=id+1
                    '''
                    jl=open('/home/oracle/script/dd.log')
                    record=jl.read()
                    '''
                    line_l=str(id)+' '+new_time




                    df=open('/home/oracle/script/mail.log','w')
                    df.writelines(line_l)
                    df.close()

                    if send_mail(mailto_list,"hello",list_disk):
                        print "发送成功"
                    else:
                        print "发送失败"
                    if getrecord[1]>0:
                        break
            else:
                line_m=str(0)+' '+new_time
                free=open('/home/oracle/script/mail.log','w')
                free.writelines(line_m)
                free.close()

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8