标签: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