Rsync 创建差异目录

Nic*_*ull 4 backup rsync

我想要的是:

我每天都在尝试将许多文件备份到 S3。我想每天将它们压缩到档案中,这样每个单独的备份就不会花费太多。因此,我想要一个备份系统,通过它我可以从前一天创建差异存档以备份到 S3。

我目前的理由是创建一个初始备份,然后每天创建与初始备份不同的基础备份。


例子:

假设我有一个名为的目录,dir其中包含一个文件a.txt

dir:
  a.txt
Run Code Online (Sandbox Code Playgroud)

然后假设我运行rsync -r dir backup.1,或其他一些备份程序,例如但不限于rdiff-backup. 很棒的东西,我有一个位于backup.1.

现在,我添加一个文件,b.txt,因此其folder内容如下:

dir:
  a.txt
  b.txt
Run Code Online (Sandbox Code Playgroud)

是否有一个rsync或其他备份实用程序,我可以运行,它会给我一个单独的目录,backup.2只包含文件b.txt

如果我修改了 的权限a.txt,该文件是否也会被包含在内?

我试过的

我试过rsyncand rdiff-backup,带有一系列标志,但我无法到达任何地方。我已经做了几个小时了,我无法弄清楚。


编辑:

半途而废!

rsync -n -rpgov backup/ backup-copy/
Run Code Online (Sandbox Code Playgroud)

请注意这-n意味着这是一个试运行,因此您可以愉快地测试它,而不会因文件更改而破坏您自己的本地目录。

这将输出两个本地文件夹之间的差异。但是,我一生都无法弄清楚如何通过rsync的选项发送到新目录。

我试过使用rsync's--compare-dest标志:

rsync -n -rpgov --compare-dest=backup/ backup-copy/
Run Code Online (Sandbox Code Playgroud)

但这似乎向上述命令输出了不同的文件。如何将其推到边缘?

Nic*_*ull 5

这就是答案!

rsync -rpgov --compare-dest=/home/nick/docs/test/backup-copy backup/ backup-output/
Run Code Online (Sandbox Code Playgroud)

请注意完整路径,以及--compare-dest标志末尾缺少尾部斜杠。这让一切变得不同!