标签:python mail subprocess.open
前段时间为公司制定了一套备份解决方案
需要每天被告知备份是否OK
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import smtplib
import email.mime.multipart
import email.mime.text
import time
import subprocess
def mailalter(user,receivers,subject,servername,status):
msg=email.mime.multipart.MIMEMultipart()
msg[‘from‘]=‘demo@demo‘
msg[‘to‘]= user
msg[‘subject‘]= subject
content = ‘‘‘
Dear ITers:
%s bakcup status %s
##Powered by voidyao000##
##Life is short,you need python!##
‘‘‘%(servername,status)
txt=email.mime.text.MIMEText(content)
msg.attach(txt)
smtp=smtplib
smtp=smtplib.SMTP()
smtp.connect(‘*.*.*.*‘,‘25‘)
#注意点:这里的receivers是列表字符串
smtp.sendmail(‘demo@demo‘,receivers,str(msg))
smtp.quit()
def chkbak(servername):
user = ‘demo@demo,demo2@demo‘
receivers = [‘demo@demo‘,‘demo2@demo‘,]
subjectok = ‘%s %sbackup OK‘%(time.strftime("%Y-%m-%d"),servername)
subjectfail = ‘%s %sbackup fail‘%(time.strftime("%Y-%m-%d"),servername)
bakdate = time.strftime("%y%m%d")
logfile = ‘/home/%sbackup/%sbak%s.log‘ %(servername,servername,bakdate)
cmd = ‘tail -1 %s‘ %(logfile)
cmd_call = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)
cmd_result = str(cmd_call.stdout.read(),‘utf8‘).strip()
chk_line = ‘%s backup sucessful‘%(servername)
if chk_line ==cmd_result:
status = ‘ok‘
print(‘backup ok‘)
mailalter(user,receivers,subjectok,servername,"OK")
else:
status = ‘fail‘
print("backup fail")
mailater(user,receivers,subjectfail,servername,"Fail")
chkbak("servername")本文出自 “Open World” 博客,请务必保留此出处http://voidyao000.blog.51cto.com/12458042/1920521
标签:python mail subprocess.open
原文地址:http://voidyao000.blog.51cto.com/12458042/1920521