編寫一個自動化腳本來備份MySQL binlog可以簡化備份過程,提高效率。下面是一個示例腳本:
#!/bin/bash
# 定義MySQL連接信息
MYSQL_USER="root"
MYSQL_PASSWORD="password"
MYSQL_HOST="localhost"
# 定義備份目錄
BACKUP_DIR="/path/to/binlog-backup"
# 創建備份目錄
mkdir -p $BACKUP_DIR
# 獲取當前binlog文件
CURRENT_BINLOG=$(mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -h $MYSQL_HOST -e "SHOW MASTER STATUS\G" | grep File | awk '{print $2}')
# 備份binlog文件
cp $CURRENT_BINLOG $BACKUP_DIR
# 壓縮備份文件
gzip $BACKUP_DIR/$CURRENT_BINLOG
# 刪除7天前的備份文件
find $BACKUP_DIR -type f -name "*.gz" -mtime +7 -delete
將以上腳本保存為binlog_backup.sh
文件,并賦予執行權限:
chmod +x binlog_backup.sh
然后可以將該腳本設置為定時任務,比如每天執行一次備份操作:
crontab -e
在打開的文件中添加以下內容:
0 0 * * * /path/to/binlog_backup.sh
保存并退出編輯器,這樣腳本就會每天在凌晨執行備份操作。備份的binlog文件會被保存在指定的備份目錄中,并且會保留最近7天的備份文件。您可以根據自己的需要調整備份頻率和保存時間。