backupboot

#!/usr/bin/env python2.7
#coding:utf-8
import re
import os
import glob
import mysql.connector

conn = mysql.connector.connect(host='localhost',user='root',passwd='123lqh',database='linqiuhua_test')
cur=conn.cursor()

logs=['main']

for i in logs:
    path='/root/practise/'+i+'/log/*.log'
    path1='/root/practise/'+i+'/*.xbstream.gz'  
    name1=glob.glob(path1)
    name=glob.glob(path)
    filename1=max(name1)
    filename=max(name)        #获取备份日期最大的文件路径
    arg0=filename.split("/")[5]  #文件名
    arg1=arg0.split(".")[0]       #实例
    arg2=arg0.split(".")[3]      #生产环境
    arg3=arg0.split(".")[4]
    time=arg3[-14:-10]+"-"+arg3[-10:-8]+"-"+arg3[-8:-6]+" "+arg3[-6:-4]+":"+arg3[-4:-2]+":"+arg3[-2:]  #备份时间
    file_size1 = os.path.getsize(filename1)  #文件大小单位为字节 byte
    file_size2=file_size1/1073741824.0
    size=str(file_size2)+"  GB"
    if arg2=="prod":
        arg2="prduc"
    file_open=open(filename)
    file_read=file_open.read()
    file_method=re.search("xtrabackup",file_read)
    file_open.close()   
    backup=file_method.group(0)
    with open(filename, 'r') as fh:
        first = next(fh)
        offs = -15
        while True:
            fh.seek(offs, 2)
            lines = fh.readlines()
            line = "".join(lines).replace('\n', '')
            if len(lines) > 1:
                last = lines[-1]
                break
            offs *= 2
    if line=="completed OK!":
        info="数据库日志备份成功!"
    else:
        info="数据库日志备份失败!"
    sql="insert into backup_log(env,alias,log_name,file_size,start_time,message,backup_type) values(%s,%s,%s,%s,%s,%s,%s)"
    cur.execute(sql,[arg2,arg1,arg0,size,time,info,backup])
    conn.commit()
cur.close()
conn.close()


posted on 2018-03-14 14:33  步行者811  阅读(143)  评论(0)    收藏  举报

导航