shell动态解析sql的binlog

#!/usr/bin
#设置数据库连接
conn=mysql -hhost -Pport -uusername -ppassword
#获取最新的binlog文件
logfile=$($conn -e "show master logs" | tail -n 1 | awk -F" " {print $1})
#设置a为1,用户下边的判断
a=1
#while循环
while true
do
    #获取起始datetime
    fromDate=$(date "+%Y-%m-%d %H:%M:%S")
    #获取结束datetime
    toDate=$(date "+%Y-%m-%d %H:%M:%S" -d+1 second )
    echo "toDate is",$toDate
    echo "a is"$a
    #设置tempDate的值
    if [ $a -eq 1 ]; then
    tempDate=$fromDate
    else
    tempDate=$tmpDate
    fi
    echo "start time is "$tempDate
    echo "stop time is ",$toDate
    #解析binlog,并追加到文件中
    mysqlbinlog -R -hhost -Pport -uusername -ppassword --start-datetime="$tempDate" --stop-datetime="$toDate" $logfile | grep -v "[#|/*!*/;|BEGIN|COMMIT|]" >> content.txt
    #重新设置a的值 
  a
=2 tmpDate=$toDate echo "current log file is "$logfile done
然后tailf content.txt,即可实时观察binlog的输出。

注:因为会追加content.txt的内容,所以可以设置一个定时任务,定期处理content.txt文件,防止文件增长过大

shell动态解析sql的binlog,布布扣,bubuko.com

shell动态解析sql的binlog

上一篇:相克军_Oracle体系_随堂笔记011-事物


下一篇:Manual | BSD手册| Linux手册 | 数据库手册 | 编程开发手册 | WEB开发手册 | 软件应用手册 | 网络技术手册 | GNU手册