一段
简单的Python脚本,需要本地装了合适版本的mysqlbinlog工具。
支持Python 2.7+
支持Python 2.7+
点击(此处)折叠或打开
- #_*_ coding:utf-8 _*_
-
- import sys
- import os
- import io
-
- binlogfile = sys.argv[1]
- database_name = sys.argv[2]
- table_name = sys.argv[3]
-
- def format_binlog():
- os.system('mysqlbinlog --base64-output=decode-rows -v '+binlogfile+'>'+binlogfile+'.txt')
-
- def pickupbinlog():
- f = io.open(binlogfile+'.txt','r')
- fw = io.open(database_name+'_'+table_name+'.txt','a')
- priv_str = ''
- priv_line = ''
- goal_flag = 0
- for row in f:
- # 处理首行
- if row[0:3] == '###' and priv_str != '###':
- if database_name in row and table_name in row:
- goal_flag = 1
- fw.write(priv_line)
- fw.write(row)
- # 处理末行
- if row[0:3] != '###' and priv_str == '###':
- goal_flag = 0
- # 处理目标操作
- if row[0:3] == '###' and priv_str == '###' and goal_flag == 1:
- fw.write(row)
- priv_str = row[0:3]
- priv_line = row
- f.close()
- fw.close()
-
- if __name__ == '__main__':
- # python2.7 pickupbinlog.py mysql-bin.001051 dbname tablename
- # python3 pickupbinlog.py mysql-bin.001051 dbname tablename
- format_binlog()
- pickupbinlog()
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28998293/viewspace-2139079/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28998293/viewspace-2139079/