#!/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]
    # 获取master  binlog日志的最后一个日志文件
    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按天备份二进制日志的更多相关文章

  1. mysql数据安全之利用二进制日志mysqlbinlog备份数据

    mysql数据安全之利用二进制日志mysqlbinlog备份数据 简介:如何利用二进制日志来备份数据 什么是二进制日志: 二进制日志就是记录着mysql数据库中的一些写入性操作,比如一些增删改,但是, ...

  2. mysql数据安全之利用二进制日志mysqlbinlog恢复数据

    mysql数据安全之利用二进制日志mysqlbinlog恢复数据 简介:如何利用二进制日志来恢复数据 查看二进制日志文件的内容报错: [root@xdclass-public log_bin]# my ...

  3. mysql之 innobackupex备份+binlog日志的完全恢复【转】

    前言: MySQL的完全恢复,我们可以借助于完整的 备份+binlog 来将数据库恢复到故障点. 备份可以是热备与逻辑备份(mysqldump),只要备份与binlog是完整的,都可以实现完全恢复. ...

  4. Linux数据库:MYSQL启用和查看二进制日志

    在/etc/my.cnf文件中[mysqld]下加上: server-id = 1 (在整个Mysql集群中保证唯一) log-bin = binlog  log-bin-index = binlog ...

  5. MySQL复制(二)--基于二进制日志文件(binlog)配置复制

    基础环境:   主库 从库 服务器IP地址 192.168.10.11 192.168.10.12 版本 5.7.24 5.7.24 已存在的数据库 mysql> show databases; ...

  6. MySQL 5.7开启二进制日志注意事项

    最近才开始将部分MySQL 5.6升级到MySQL 5.7, 在开启MySQL的二进制日志时,发现MySQL 5.7 与MySQL 5.6已有细微区别.如果在my.cnf配置文件中,只设置了全局系统变 ...

  7. MySQL知识总结(四)二进制日志

    1 定义 bin-log日志记录了所有的DDL和DML的语句,但不包括查询的语句,语句以事件的方式保存,描述了数据的更改过程,此日志对发生灾难时数据恢复起到了极为重要的作用. 2 开启 mysql默认 ...

  8. mysql之 innobackupex备份+binlog日志的完全恢复(命令行执行模式)

    前言:MySQL的完全恢复,我们可以借助于完整的 备份+binlog 来将数据库恢复到故障点.备份可以是热备与逻辑备份(mysqldump),只要备份与binlog是完整的,都可以实现完全恢复. 1. ...

  9. MySQL完全备份脚本:数据+二进制日志+备份日志

    一. 脚本须知 1.mysql数据文件和二进制日志文件最好保存在不同的分区或存储设备上 2.备份完成后注意修改数据的权限以防止泄露重要信息,哪些主机哪些用户可以用来恢复 3. 查看导出的2进制日志文件 ...

随机推荐

  1. filter_var 函数()绕过执行命令

    escape 过滤器来过滤link,而实际上这里的 escape 过滤器,是用PHP内置函数 htmlspecialchars 来实现的 htmlspecialchars 函数定义如下: htmlsp ...

  2. STM32F107移植LWIP

    STM32F107上移植LWIP2.0.3 因为最近需要在STM32F107上实现TCP/IP协议栈,所以网上查了一下,准备使用LWIP,虽然大多数用的是1.4.1版本但是官方说2系大版本修复了1.4 ...

  3. 机器学习(四):通俗理解支持向量机SVM及代码实践

    上一篇文章我们介绍了使用逻辑回归来处理分类问题,本文我们讲一个更强大的分类模型.本文依旧侧重代码实践,你会发现我们解决问题的手段越来越丰富,问题处理起来越来越简单. 支持向量机(Support Vec ...

  4. 013.NET5_MVC_Razor扩展Html控件01

    Razor扩展控件  第一种方式: 1. 定义一个静态类 2. 定义静态扩展方法,扩展IHtmlHelper类型,返回IHtmlContent类型: 本质:通过后台方法,返回一个已经存在的Html标签 ...

  5. WIN10修改应用的默认打开方式

    如图所示: 选中想要替换成为的应用程序, 在其中勾选想设默认应用的文件类型即可.

  6. 末日余晖 PC 版 下载

    末日余晖 PC 版 下载 <末日余晖>(英文名:Farlight 84)一款废土题材的射击游戏 Farlight 84 Official Trailer Farlight 84 官方预告片 ...

  7. free HTTPS for website! & SSL & TLS & HTTP/2 & SPDY

    HTTPS for website! 1 1 1 # OK (bugs === main domain temporarily OK) # sub domain allways OK! # partl ...

  8. Xcode show whitespace

    Xcode show whitespace Xcode 11.5 how to config Xcode show whitespace 如何配置 Xcode 显示空白字符 Editor -> ...

  9. fibonacci all in one

    fibonacci all in one fibonacci sequence https://www.mathsisfun.com/numbers/fibonacci-sequence.html f ...

  10. W3C & 弹幕

    W3C & 弹幕 弹幕用例规范 Draft Community Group Report 21 August 2020 refs https://w3c.github.io/danmaku/u ...