#!/bin/bash
echo "開始備份 $(date '+%Y-%m-%d %H:%M:%S')"
#備份保留的最大日期贩幻,需要根據(jù)實際情況修改
RETENTION_DAY=31
#備份的文件名斋否,需要根據(jù)實際情況修改
FILE_NAME=file1
#備份的目錄虚婿,需要根據(jù)實際情況修改
BAK_HOME=/mysql-bak
fn=$(date -d "-${RETENTION_DAY} day " +%Y-%m-%d)
old_filename=$BAK_HOME/$FILE_NAME.$fn.sql
if [ -f $old_filename ];then
echo "刪除老舊的備份文件 ${old_filename}"
rm -f $old_filename
fi
curr_fn=$(date +%Y-%m-%d)
curr_filename=$BAK_HOME/$FILE_NAME.$curr_fn.sql
echo "今日備份文件名 $curr_filename "
mysqldump --single-transaction -uroot databaseName > $curr_filename
echo "結束備份 $(date '+%Y-%m-%d %H:%M:%S')"
修改好 “需要根據(jù)實際情況修改” 的幾個參數(shù)后牍颈,把腳本放到crontab中定時執(zhí)行備份泼菌。備份過程中會刪除超過最大保留期的備份文件谍肤。