排程 檔案備份

設定檔案備份並且同步到另一台主機,BUBU 的環境會跟各位不一樣,所以在修改時要注意一下路徑及檔名

檔案同步設定如下


  • 新增執行檔
vim fibackup.sh
  • 將以下內容填入
#!/bin/bash
#source /etc/profile

# 要刪除的7天前的日期
DEL_TEN_DAY=$(date -d -7day +%F-%H%M%S)

# Others vars
BACK_DIR="/root/backup"       # 要備份到目錄
DATE_TITILE=$(date +%F)       # 標題時間
DATE_TODAY=$(date +%F-%H%M%S) # 備份時間

# 如果該目錄不存在則建立新目錄
if [ ! -d $BACK_DIR ]; then
    mkdir -p $BACK_DIR
fi

# 進到備份目錄
cd /root/backup

echo "-----$DATE_TITILE-----" >> $BACK_DIR/FIBAK_LOG${DATE_TODAY}.txt

#開始壓縮備份目錄
echo "開始 backup 壓縮" >> $BACK_DIR/FIBAK_LOG${DATE_TODAY}.txt
tar -czPvf backup${DATE_TODAY}.tar.gz /var/www/html/BookStack >> $BACK_DIR/FIBAK_LOG${DATE_TODAY}.txt
echo "壓縮成功 backup${DATE_TODAY}.tar.gz" >> $BACK_DIR/FIBAK_LOG${DATE_TODAY}.txt

# 删除7天前的备份
if [ ! -f "backup${DEL_TEN_DAY}.tar.gz" ]; then
    echo "7天前($DEL_TEN_DAY)備份檔不存在,無需刪除" >> $BACK_DIR/FIBAK_LOG${DATE_TODAY}.txt
else
    rm -f backup${DEL_TEN_DAY}.tar.gz
    echo "刪除7天前備份檔 BS-backup${DEL_TEN_DAY}.tar.gz" >> $BACK_DIR/FIBAK_LOG${DATE_TODAY}.txt
fi

同步到另一台主機鏡像


  • 新增執行檔
vim rsync.sh
  • 將以下內容填入
#!/bin/bash
#source /etc/profile

# Others vars
BACK_DIR="/root/rsynclog"       # 要備份到目錄
DATE_TITILE=$(date +%F)       # 標題時間
DATE_TODAY=$(date +%F-%H%M%S) # 備份時間

# 如果該目錄不存在則建立新目錄
if [ ! -d $BACK_DIR ]; then
    mkdir -p $BACK_DIR
fi

# 進到備份目錄
cd /root

echo "-----$DATE_TITILE-----" >> $BACK_DIR/rsync_LOG${DATE_TODAY}.txt
echo "開始備份檔案" >> $BACK_DIR/rsync_LOG${DATE_TODAY}.txt
rsync -avzh --delete backup nasbak >> $BACK_DIR/rsync_LOG${DATE_TODAY}.txt
echo "備份結束" >> $BACK_DIR/rsync_LOG${DATE_TODAY}.txt

排程


25 22 * * * /root/fibackup.sh
30 22 * * * /root/rsync.sh

補充說明


  • 排除沒有要備份的目錄參數是 --exclude=
                                要排除目錄或檔案   
rsync -avzh --delete --exclude='#recycle/' backup nasbak
  • 備份要有進度 -P 增加此參數是會在畫面上顯示目前的進度
rsync -avzhP --delete --exclude='#recycle/' backup nasbak



參考相關網頁