#!/bin/bash
#保留備份個數,會刪除時間較早的.dump備份
number=3
#設置備份保存路徑,yourpath替換成自己的備份保存路徑
backup_dir=yourpath
#日期格式
dd=`date +%Y%m%d`
#備份工具
tool=mysqldump
#數據庫用戶名
username=root
#數據庫密碼,由于密碼可能包含特殊字符,需要用''轉義
password='yourpwd'
#將要備份的數據庫名稱,yourdb替換成自己要備份的數據庫名,此腳本只支持備份一個數據庫,多數據庫mysqldump用法
database_name=yourdb$tool -u $username -p$password --databases $database_name > $backup_dir/$database_name-$dd.dump#寫創建備份日志
echo "create $backup_dir/$database_name-$dd.dump" >> $backup_dir/log.txt#查詢本目錄下所有備份文件
#查詢備份文件是按照備份文件的生成時間來計算的
FileNum=$(ls -l $backup_dir/*.dump | grep ^- | wc -l)
echo "Number of backup files:"$FileNum >> $backup_dir/log.txt
while(( $FileNum > $number ))
do#取最舊的文件,*.*可以改為指定文件類型OldFile=$(ls -rt $backup_dir/*.dump | head -1)echo "Delete File:"$backup_dir'/'$OldFile >> $backup_dir/log.txtrm -f $OldFilelet "FileNum--"
done
?