我想製作一個腳本來備份我的家和其他重要的目錄到外部驅動器,同時排除某些目錄和文件類型(--exclude
)。排除文件需要在備份上刪除,以防將文件類型或目錄添加到排除列表(--delete-excluded
)。我怎樣才能防止在rsync中刪除一個目錄
此外,所有刪除的內容都需要備份,以防萬一出現可怕的錯誤(--backup --backup-dir=rsync/backup
)。
我開始了這一點:
#!/usr/bin/env bash
PATH_PWD="`pwd`"
PATH_HOME=~
SRC="/home/redsandro"
PATH_TARGET="/media/redsandro/MyBook 4TB/backup/`hostname`"
PATH_BIN="${SRC}/bin"
EXCL_FROM="${PATH_BIN}/rs-backup-external.sh.exclude.txt"
DATE="`date +%Y-%m-%d`"
OPTS="-ahl --update --del --delete-excluded --force --ignore-errors --progress --stats --exclude-from=$EXCL_FROM --log-file=~/rsync/rsync.$DATE.log"
OPTS="$OPTS --backup --backup-dir=rsync/backup/${DATE}"
#OPTS="$OPTS --dry-run"
echo Backing up $SRC to $PATH_TARGET...
echo
sudo rsync $OPTS "$SRC/" "${PATH_TARGET}${SRC}"
現在,很明顯,--del
衝突與--backup --backup-dir=rsync/backup
。我可以排除這個目錄被刪除嗎?或者也許有更簡單的方法來做到這一點?
我的目標是讓腳本可以在我的所有機器上運行,其中一部分同步到計算機特定的目錄,另一部分(文檔,圖片)同步到全局目錄,因爲它們都需要無論如何。
你有沒有解決這個問題?我不清楚你在做什麼 - 備份的備份? – philshem
不,我從來沒有。我試圖定期進行鏡像備份,但也會將備份中將要刪除的所有文件移動到特定的目錄中,以便我可以撤消偶然刪除的任何內容。 – Redsandro
也許可以考慮使用rsync的-n或--dry-run選項來查看它會執行什麼操作,然後複製在rsync的實際運行中將被刪除的數據? – GL2014