rsync 问题将源与目标同步(在目标上归档多余文件)

rsync 问题将源与目标同步(在目标上归档多余文件)

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/

关于如何以更可靠的方式做到这一点有什么想法吗?

答案1

这些--backup --backup-dir=/some/backup/directory选项将备份目标上更改或删除的文件。

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

请注意, 的路径--backup-dir是相对于目的地的,因此为了避免将其放置在内部,tgt/最好提供绝对路径。

答案2

有选项选项--list-only

相关内容