共計 1588 個字符,預計需要花費 4 分鐘才能閱讀完成。
本篇內容介紹了“怎么根據日期來查詢 mysql 的 binlog 日志”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
根據日期來查詢 mysql 的 binlog 日志的腳本
[binlog@m-mysql-binlogbak ~]$ cat
mysqllog.sh
#!/bin/bash
#本腳本是用來根據日期來查詢 mysql 的 binlog 日志
#the author is czxin788@qq.com
read -p 請輸入您要查詢 mysql 日志的起始日期 (格式必須是:170728): starttime
read -p 請輸入您要查詢 mysql 日志的截止日期 (格式必須是:170728): endtime
read -p 請輸入您要查詢的內容: content
echo ——————-
echo 正在為您查詢,時間可能會比較長,請您耐心等候 …..
echo 開始時間:`date +%Y-%m-%d_%H:%M`
#獲取 binlog 的文件名
binname=`ls /opt/mysqlbinlog/ |xargs`
#用 for 循環根據開始日期確定要查詢的起始 binlog 日志文件名
for i in `ls /opt/mysqlbinlog/`
do
mysqlbinlog –base64-output=decode-rows -v -v -v /opt/mysqlbinlog/$i |head -50 |grep `expr $starttime – 1` /dev/null 2 1
if [$? -eq 0];then
echo $i /tmp/startbin.txt
break
fi
done
startbinlog=`cat /tmp/startbin.txt`
fistname=`echo $startbinlog ${binname##*$startbinlog}`
#######
#用 for 循環根據截止日期確定要查詢的截止 binlog 日志文件名
for j in `ls /opt/mysqlbinlog/`
do
mysqlbinlog –base64-output=decode-rows -v -v -v /opt/mysqlbinlog/$j |head -50 |grep `expr $endtime + 1` /dev/null 2 1
if [$? -eq 0];then
echo $j /tmp/endbin.txt
break
fi
done
endbinlog=`cat /tmp/endbin.txt`
lastname=`echo ${fistname%%$endbinlog*} $endbinlog`
#輸出最終要查詢的 binlog 文件名 list
#echo the result name:$lastname
cd /opt/mysqlbinlog/
resultlog=${content}_`date +%m%d%H%M%S`.log
mysqlbinlog –base64-output=decode-rows -v -v -v $lastname |grep -C 200 -i $content /home/binlog/$resultlog
echo ——————-
echo 結束時間:`date +%Y-%m-%d_%H:%M`
echo 已完成,您要查詢的內容已經放在 /home/binlog/$resultlog 里面,請執行 sz /home/binlog/$resultlog 命令下載到自己筆記本上查看!
[binlog@m-mysql-binlogbak ~]$ sh mysqllog.sh
就可以使用了
“怎么根據日期來查詢 mysql 的 binlog 日志”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!