字體:  

如何讓Linux 每天自動備份且保留7 天的方法

altis 發表於: 2014-6-23 23:12 來源: ADJ網路控股集團


如果你在做備份的時後...需要將特定目錄每天備份...但是檔案要保留7天...第8天就覆蓋掉第一天的備份...
以此類推...這時後你可以這樣做~~

這邊有一個簡單的 Shell Script 可以做到.假設命名為 backup_7Days , 主要是抓取星期一 到 星期日 的Number:

QUOTE:



#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
s_date=`date '+%Y-%m-%d %H:%M:%S'`;
HEADER="Backup data"

BACKUPDIR="/var/lib/mysql /home/adj"
back_www_dir="/backup/www_data"

echo ${s_date};

#
# 開始備份
#
week_num=$(date +%w);
cd $back_www_dir

for TARGET in $BACKUPDIR
do
        base_name=`basename $TARGET`

        if [ "$base_name" != "" ]; then
                $(tar -jcvPf ${base_name}-${week_num}.tar.bz2 ${TARGET})  > /dev/null 2>&1;
                sleep 1;
        fi
done

e_date=`date '+%Y-%m-%d %H:%M:%S'`;
echo $e_date;
echo "-------------------------";
exit;



然後設定crontab

QUOTE:



############ Backup Weekend ####################
0 5 * * * /etc/backup_7Days >> /backup/www_data/backup.log



這樣就大功告成啦~~