简单分布式断开方式来同步一个目录

我想定期在我的ubuntu笔记本电脑X机器上备份我的主目录。假设我可以访问2个不同的远程(linux)服务器,我可以备份到机器A和B.机器X将是主机,应该是同步到A和B.我可以经常运行rsync从X到A,然后从X到B.这就是我所需要的。

但是,我很好奇,如果有更多的带宽有效,因此更快的方式来做到这一点。 假设X将在住宅式的宽带线路上,并且由于我不想吸收带宽,所以我将限制从X转移.A和B将一直在,但是X不会,所以我也想减lessX传输的时间,可能会让A和B花费更多的时间进行传输。 另外,X将不会始终连接。

什么是最好的方法来做到这一点? rsync从X到A,然后从A到B? 正确的时机可能是麻烦的。 我不想保留旧文件,所以如果我是rsync,那么将使用--del选项。 这是否意味着可能会从A转移到B,然后从B中删除,然后再从A转移到B? 这是不理想的。

我知道有很多像gluster这样的分布式文件系统,但是我认为在这种情况下这太过分了,并且可能不适合于断开的性质。

有巧妙的方法来做到这一点,简单的方法。 我会尽可能select简单。

你可以做X – > A,然后A – > B?

还有像Unison这样的方法,但似乎只有一个副本,而且它是双向的,似乎不像备份那样有用。 但是,如果A和B都在Unison上运行,那么客户端X似乎可以备份到A B,并且可以很好地将其交给另一个。

你希望X启动与A的同步,然后A将把数据从X中提取出来,并在完成时推送到B.A上的脚本可以检查某个文件是否存在,当它是在线并准备好同步。 当从X拉出来时,它应该推到B,当完成删除文件。 另外,你也可以在A和B上使用几乎相同的脚本,但是当A从X中拉出时,它会在B上放置一个文件,告诉它与A同步。如果你有两台以上的机器同步,这将是从那时起,同步可以通过所有的方式级联(可能以分布式树形而不是线性)

Dropbox会为你工作吗?

gibak适合这个,我想。

您可以让笔记本电脑命令服务器互相拉,然后推送到任何一台服务器; 尽pipe这意味着笔记本电脑必须等待,并可能保持在线时间更长。 你可以添加cronjobs,让服务器互相拉。 或者你可以把笔记本电脑推到A上,并且在后接收挂钩中推送到B,这是比较简单的。

我认为迈克尔·格拉夫的解决scheme是最好的主意。 rsync X – > A.然后A – > B

如果你想要另一个可以减less计算时间的build议,你可以看看xdelta( http://xdelta.org/ )。 它与多跳rsync基本上是相同的解决scheme,它的好处是可以为您节省每跳计算delatas的时间。 如果涉及的文件很大,这可能会节省大量时间。

吉姆C. http://www.kleobackup.net

我同意naelyn,这听起来像一个dropbox的场景

正如你所说你正在运行Ubuntu。 我以为Ubuntu One应该也提供这个function。 我不用自己,但可能值得一看。