修改 _binlogdir='/data/mysql/mysql_3301/mysql-bin'
bin log实例格式为:mysql-bin.000002
导出该目录下all.sql
执行:
#./datarecover.sh
输入起始日期:2012-09-15 00:00:00
输入起始日期:2012-09-15 23:59:59
输入导出的库名:直接回车导出所有
#! /bin/bash
_binlogdir='/data/mysql/mysql_3301/mysql-bin'
_fristbinlog=`ls -r $_binlogdir* |tail -1`
_lastbinlog=`ls $_binlogdir* |tail -2|grep -v index`
_fristbinlogtime=`stat "$_fristbinlog" |grep Modify|awk -F . '{print $1}'|awk -F Modify: '{print $2}'`
_lastbinlogtime=`stat "$_lastbinlog" |grep Modify|awk -F . '{print $1}'|awk -F Modify: '{print $2}'`
echo "================================================================"
echo " 此程序只能导出 $_fristbinlogtime - $_lastbinlogtime 的sql语句 "
echo "================================================================"
read -p "请输入开始时间 Please enter begian time (such as 2010-01-01 09:23:01) :" fristbegiantime
read -p "请输入结束时间 Please enter over time (such as 2010-10-10 09:23:01) :" fristovertime
read -p "请输入要导出的库,不填此项为全选 :" dbname
_fristNo=`echo $_fristbinlog|awk -F . '{print $2}'`
_lastNo=`echo $_lastbinlog|awk -F . '{print $2}'`
begiantime=`date -d "$fristbegiantime" +%s`
overtime=`date -d "$fristovertime" +%s`
echo `seq -f %06g $_fristNo $_lastNo`
for No in `seq -f %06g $_fristNo $_lastNo`
do
_alltime=`stat $_binlogdir.$No|grep Modify|awk -F . '{print $1}'|awk -F Modify: '{print $2}'`
echo $_alltime
_alltime=`date -d "$_alltime" +%s`
echo $_alltime
echo =========================
_begchazhi=$(($begiantime - $_alltime ))
_lachazhi=$(($overtime - $_alltime))
echo $_begchazhi
echo $_lachazhi
echo ===============================
if [ $_begchazhi -gt 0 ] && [ $_begchazhi -lt 3600 ];then
_begianNo=$No
echo $_begianNo
fi
if [ $_lachazhi -gt 0 ]&& [ $_lachazhi -lt 3600 ];then
_lastNo=$No
echo $_lastNo
fi
done
if [ -z $dbname ];then
#for No in `seq -f %06g $_begianNo $_lastNo`
for No in `seq -f %06g $_fristNo $_lastNo`
do
#echo $No
mysqlbinlog --start-datetime="$fristbegiantime" --stop-datetime="$fristovertime" $_binlogdir.$No >> all.sql
done
else
#for No in `seq -f %06g $_begianNo $_lastNo`
for No in `seq -f %06g $_fristNo $_lastNo`
do
mysqlbinlog --start-datetime="$fristbegiantime" --stop-datetime="$fristovertime" --database $dbname $_binlogdir.$No >>/$dbname.sql
done
fi
分享到:
相关推荐
数据恢复大师
《全面解析DataRecover:数据恢复利器》 在数字化时代,数据的价值无法估量,而数据丢失往往会给个人和企业带来严重损失。DataRecover是一款专业级别的数据恢复软件,它致力于解决各种数据丢失问题,包括误删除文件...
5. **数据恢复模块 (datarecover.v)**:在实际的通信系统中,由于传输过程中的噪声和干扰,可能会导致数据错误。数据恢复模块可能包含错误检测和纠正机制,如奇偶校验或者更复杂的前向错误校正(FEC)算法,以确保...
体积小巧,无广告无需付费无文件数量限制,能按磁盘原有文件目录结构恢复误删除的文件,不是恢复成孤立的文件,无存在恢复完成后原文件夹结构丢失,需要花费大量时间去重建分组,是不可多得的能用并且好用的数据恢复...
软件功能 1、支持笼统过滤(如图片,视频,还是文档),也支持对扫描结果进行精确的过滤,(如指定文件类型为*.png 通过通配符输入文件名等等)。 2、对扫描出的文件进行标识(良好,很差,无法恢复),可以很容易...
数据恢复软件破解版(7-Data Recovery Suite)是一款多功能一体化数据恢复软件,界面风格是现在最流行的Win8风格,程序几乎可以抢救您在任何条件下所导至丢失的文件。可以从硬盘、 内存卡、 闪存驱动器和移动电话中...