#!/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
时间: 2024-10-10 10:31:21