码迷,mamicode.com
首页 > 数据库 > 详细

MySQL按天备份二进制日志

时间:2020-08-25 15:45:56      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:当前时间   time   show   use   定义   connect   project   ike   mod   

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:guozhen.zhang
 
import MySQLdb
import time
import os
 
# 创建备份binlog目录
project_path = ‘/data/binlog_back‘  # 定义备份日志的目录
binlog_file = "/data/binlog_back/binlog_file"  # 定义获取日志的存放文件
last_binlog_file = "/data/binlog_back/last_binlog_file"  # 获取binlog日志的最后一个日志文件
dir_time = time.strftime(‘%Y%m%d-%H%M‘, time.localtime(time.time()))  # 返回当前时间的年月日作为目录名称
isExists = os.path.exists(project_path + ‘/‘ + dir_time)  # 判断该目录是否存在
if not isExists:
    os.makedirs(project_path + ‘/‘ + dir_time)
    print(project_path + ‘/‘ + dir_time + "目录创建成功")
 
 
# 定义执行备份脚本
def back_binlog():
    # 建立MySQL连接
    conn = MySQLdb.connect(host=‘192.168.1.20‘, port=3306, user=‘root‘, passwd=‘123a456b‘)
 
    # 刷新master的二进制日志
    cursor = conn.cursor()
    cursor.execute("flush logs;")
 
    # 获取binlog的存放路径
    cursor1 = conn.cursor()
    cursor1.execute("show variables like  ‘log_bin_basename‘")
    row1 = cursor1.fetchone()[1]
 
    # 获取masterbinlog日志的最后一个日志文件
    cmd = ‘ls %s* |grep -v index|tail -1 > %s‘ % (row1, last_binlog_file)
    os.popen(cmd).read()
 
    # 获取master前一天的二进制日志
 
    cmd = ‘find %s*  -mtime 0    -exec ls {} \;|grep -v  `cat %s` |grep -v index> %s‘ % (
        row1, last_binlog_file, binlog_file)
    os.popen(cmd)
 
    f = open(binlog_file, mode="r")
    lines = f.readlines()
    for line in lines:
        fname = line.strip()
        cmd = ‘cp ‘ + fname + ‘ ‘ + (project_path + ‘/‘ + dir_time)
        os.system(cmd)
    f.close()
 
    # 关闭数据库连接
    conn.close()
 
 
# 备份二进制文件存在就执行备份,否则退出
if os.path.exists(binlog_file):
    back_binlog()
    print("backup success!")
else:
    print("binlog file not found")
    exit()
 

MySQL按天备份二进制日志

标签:当前时间   time   show   use   定义   connect   project   ike   mod   

原文地址:https://www.cnblogs.com/manger/p/13531107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!