首页 > 代码库 > shell动态解析sql的binlog
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 truedo #获取起始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 "$logfiledone
然后tailf content.txt,即可实时观察binlog的输出。
注:因为会追加content.txt的内容,所以可以设置一个定时任务,定期处理content.txt文件,防止文件增长过大
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。