我可以使用rsync从多个系统中捕获基线的差异吗?

时间:2015-06-29 15:33:36

标签: rsync

我有一个活动即将到来,我们将有许多学生使用笔记本电脑来做工作。所有系统都将从基线图像中复制出来。我想要做的只是捕获事件期间系统上已更改/修改的数据。第一个想法是将时间戳文件放在基线图像中,然后使用&find;找到--newer timestampfile'生成自创建基线以来已更改的文件列表,然后再备份这些文件。然后我发现rsync可能能够使用--backup和--backup-dir选项来帮助解决这个问题。除了一件事,它几乎完美无缺。此外,它可以基于校验和而不仅仅是时间戳。

在测试中,我在本地磁盘上设置了一些测试文件系统来模拟操作。如果我运行类似的东西:

rsync -cavhP --fake-super --backup --backup-dir = / backup / host1-backup host1-fs baseline-fs

它工作正常,我从第一个主机目录的基线获得了差异,但任何后续主机目录都无法正常工作。它几乎就像使用第一次同步设置的检查点一样。

有没有办法告诉rsync不要更新基线目录中的任何内容,这样我就可以将多个目标主机的更改与基础进行rsync同步?

谢谢, -d

1 个答案:

答案 0 :(得分:0)

使用rsync还有更多时间,我已经在这里找到解决方案,所以我想我会分享。 --compare-dest选项就是诀窍。

首先,创建比较基线:

rsync -ave" ssh -i~ / .ssh / id_rsa" / local / path user @ backuphost:/ path / to / baseline

然后,在每个主机上,您要捕获以下内容的更改:

rsync -ave" ssh -i~ / .ssh / id_rsa" --compare-dest = / path / to / baseline / local / path user @ backuphost:/ path / to / differential / backup

请注意,传递给--compare-dest的路径只是远程主机上的路径,这一点很重要。你必须在那里省略用户@backuphost。

-d