Linux 发邮件磁盘空间监控(python)
核心代码:
#!/usr/bin/python
#-*-coding:UTF-8-*-
importsmtplib
importos
importcommands,time
fromemail.mime.textimportMIMEText
#fromemailimportMIMEText
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-vUse")
use02=commands.getstatusoutput("df-lh|awk'{print$5}'|grep'%'|awk-F'%''{print$1}'|grep-vUse")
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())
defsend_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()
returnTrue
exceptSyntaxError:
pass
returnFalse
if__name__=='__main__':
iffree02>30:
id=0
ifnew_time>gettime[1]:
while1:
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()
ifsend_mail(mailto_list,"hello",list_disk):
print"发送成功"
else:
print"发送失败"
ifgetrecord[1]>0:
break
else:
line_m=str(0)+''+new_time
free=open('/home/oracle/script/mail.log','w')
free.writelines(line_m)
free.close()