网络编程
位置:首页>> 网络编程>> Python编程>> Linux 发邮件磁盘空间监控(python)

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

作者:mdxy-dxy  发布时间:2022-03-15 09:17:24 

标签:python,磁盘空间监控

核心代码:


#!/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()
0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com