Rsync

rsync 問題將源與目標同步(在目標上歸檔剩余文件)

  • September 16, 2020

rsync 對我來說很清楚,但我有一個具體的任務我還不知道。

我想將源與目標 1:1 同步。我相信該--delete選項將涵蓋這一點。因此,如果我在源上添加文件,rsync 會將文件添加到目標。如果文件在源上被刪除,rsync 會在目標上刪除它。現在,我不想刪除目標文件,而是將其移動到“存檔”文件夾。

是否可以向 rsync 詢問源中失去文件的列表?所以我可以將列表中的項目從目的地移動到存檔?

我有一個可行的解決方案,但它不穩定,因為它與傳輸文件相關並且取決於 rsync 控制台輸出,這可能在 rsync 版本中有所不同。

rsync -avun --delete src/ tgt/ |grep "deleting" | cut -c10- > transfer.txt
rsync --files-from=transfer.txt --remove-source-files tgt/ archive/
rm transfer.txt
rsync -ravu --delete src/ tgt/

關於如何以更可靠的方式做到這一點的任何想法?

這些--backup --backup-dir=/some/backup/directory選項將備份目標上更改或刪除的文件。

rsync -auv --delete --backup --backup-dir=/path/to/backupdir src/ tgt/

請注意,路徑--backup-dir是相對於目標的,因此為避免將其放置在內部tgt/,最好提供絕對路徑。

有選項--list-only選項。

引用自:https://unix.stackexchange.com/questions/227698