MySQL binlog 自动备份脚本

MySQL binlog 自动备份脚本

1 利用shell进行备份

复制代码
#!/bin/sh
#mysql binlog backup script
/usr/local/mysql/bin/mysqladmin -u* -p* -h127.0.0.1 -P3306  flush-logs
DATADIR=/data/mysqldata/3306/binlog
BAKDIR=/data/mysqldata/backup/binlogbk
LOG=/data/mysqldata/backup/mysqlbinlog_bk.log

echo "NOW is : Backup type=mysql binlog backup" >> ${LOG}
DATE_D=`date +'%Y%m%d'`

if [ ! -d "$BAKDIR}" ]; then
    mkdir -p "$BAKDIR"
    echo -e "===$BAKDIR does not exsits,created them!" >> ${LOG}
fi
cd $DATADIR
FILELIST=`cat /data/mysqldata/3306/binlog/mysql-bin.index`
COUNTER=0
for file in $FILELIST
do
    COUNTER=`expr $COUNTER + 1` 
done
    NextNum=0
for file in $FILELIST
do
   base=`basename $file`
    NextNum=`expr $NextNum + 1`
if [ $NextNum -eq $COUNTER ]
    then
    echo -e "skip lastest"  >> ${LOG}
      else
    dest=$BAKDIR/$base
        if(test -e $dest)
        then
            echo -e "skip exist $base"  >> ${LOG}
        else
            echo -e "copying $base"  >> ${LOG}
            cp -rp $base $BAKDIR/.        
        fi
fi
done
if [ $? = 0 ]
    then
    echo -e "backup mysql binlog ok on $DATE_D" >> ${LOG}
else
    echo -e "backup mysql binlog failover on $DATE_D!!!" >> ${LOG}
fi
复制代码

[mysql@mysqlhq scripts]$ ./mysql_binlog_backup.sh
Warning: Using a password on the command line interface can be insecure.

[mysql@mysqlhq scripts]$ cd /home/data/mysqldata/backup/binlogbk/
[mysql@mysqlhq binlogbk]$ ll
total 1496016
-rw-rw---- 1 mysql mysql 65279 Sep 19 10:12 mysql-bin.000001
-rw-rw---- 1 mysql mysql 1053952 Sep 19 10:12 mysql-bin.000002
-rw-rw---- 1 mysql mysql 139989697 Oct 8 09:12 mysql-bin.000003
-rw-rw---- 1 mysql mysql 524288167 Oct 18 09:45 mysql-bin.000004
-rw-rw---- 1 mysql mysql 524288148 Oct 31 08:16 mysql-bin.000005
-rw-rw---- 1 mysql mysql 83358311 Nov 2 09:08 mysql-bin.000006
-rw-rw---- 1 mysql mysql 200437 Nov 2 09:17 mysql-bin.000007
-rw-rw---- 1 mysql mysql 258655163 Nov 8 17:13 mysql-bin.000008

##由于脚本里面配置的是明文密码,Warning: Using a password on the command line interface can be insecur
## 可以加上 2>/dev/null

posted @   春困秋乏夏打盹  阅读(707)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示