在前一篇文章中提到,讓Linux擁有自動備份,但要總不能無止盡的增加新備份,卻不移除過期的備份。

延續前一篇文章,假設將網頁伺服器服務(Apache)內的html資料夾,以及整個資料庫服務(MySQL)內的所有資料庫備份到/home/backup/daily,現在要讓主機自動移除過期的備份。

開啟一份空白文件,將以下指令貼入,另存為remove_dailybackup_30days.sh

#!/bin/bash

#1.刪除30天前的舊每日備份檔

datedim=`date –date=’30 days ago’ +%Y-%m-%d`

basedir=”/home/backup/daily”

rm -rf “$basedir/mysql”/mysql.”$datedim”.tar.gz

rm -rf “$basedir/html”/html.”$datedim”.tar.gz

exit 0

將剛才存檔的remove_dailybackup_30days.sh,放到/etc/cron.daily,確保每天執行一次檢查。

上述範例中,定義刪除30天前的備份檔,日期格式必須符合「年-月-日.tar.gz」,例如「2008-02-03.tar.gz」。如果要變更天數,直接修改倒數第三行的定義就行了。

最後更新日期: 2020/09/21

喜歡這篇文章?立刻分享給朋友!