排程 檔案備份
設定檔案備份並且同步到另一台主機,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