zoukankan      html  css  js  c++  java
  • 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文件,防止文件增长过大
  • 相关阅读:
    oracle 强杀进程
    oracle查询使用频率和磁盘消耗需要缓存大小
    Oracle定时器执行多线程
    Python
    Python- XML模块
    Python-标准库之OS模块
    Python
    Python-时间复杂度
    Python-冒泡排序
    Python-正则表达式
  • 原文地址:https://www.cnblogs.com/liuweiqiang/p/3861429.html
Copyright © 2011-2022 走看看