我应该如何跨计算机同步配置和数据?

想象一下,我有三台Ubuntu电脑, laptopbeach-house 。 它们都安装了相同版本的Ubuntu,10.04,并且从存储库中保持最新。

我在所有电脑上使用f-spotthunderbirdgoogle-chrome 。 有没有办法使数据和配置保持同步,而不需要为正常(非同步)使用提供持续连接?

例如,它们应该可以在没有网络连接的情况下使用,因此NFS之类的东西不起作用。

理想的解决方案不需要手动操作来启动同步过程。

像f-spot,thunderbird和google-chrome这样的应用都使用某种forms的二进制数据库来存储他们的数据。 尝试同步这样的事情,同时应用程序访问/修改文件的可能性可能会变得非常混乱。

相反,您希望寻找特定于应用程序的解决方案。

  • 使用雷鸟,我会说使用IMAP。 如果你没有它,GMail支持它。 您可以让thunderbird上传您的所有电子邮件,或者更好的是,让GMail从您的其他帐户中提取电子邮件。 您还可以免费获得相当不错的网络邮件和强大的垃圾邮件filter。

  • Firefox有(其中包括) Firefox Sync 。

  • Chrome内置了同步function, 此处记录在案 。

  • F-Spot更加强硬。 也许考虑某些东西来同步文件而不是数据库。 这意味着您需要一直扫描新文件,但前提是您需要在每台计算机上使用F-Spot。

    您可以限制自己在一台计算机上使用F-Spot,而只是访问其他计算机上的文件。 在这三者中,F-Spot数据库是最脆弱的,所以如果你共享数据库文件要小心。

要同步数据(如文档),请使用UbuntuOne或DropBox 。 我真的可以推荐后者。 这假设您不介意将数据存储在公司的数据中心或云中。 我不确定是否通过互联网分享您的音乐collections。 我的网络连接速度不够快,所以我会定期手动复制或使用rsync

对于配置,有两种不同的情况:使用常规文本文件作为配置的应用程序,以及使用gconf,数据库或非标准文本的应用程序。 对于前者,您可以将dotfiles(例如~/.vim/~/.zshrc )存储在Dropbox(或UbuntuOne)文件夹的子文件夹中,然后将文件符号链接回$ HOME目录。 这很好用。

至于你提到的应用程序,似乎没有一个使用简单的文本文件作为配置。 从本质上讲,这意味着您无法有效地同步它们。 原因是,如果存在冲突,您将无法解决冲突。 此外,配置目录的某些部分(例如缓存文件)必须是特定于系统的,否则不适合同步。 在这些情况下,我说不要打扰同步,只需复制一次config目录。 但是有一个例外:本机支持跨多台计算机共享配置的应用程序。 Firefox 可以执行此操作 ,最近版本的Google Chrome可以在您的Google个人资料中至少存储部分配置(请查看您的偏好设置)。 我不确定是否支持共享插件/扩展,但这是一项正在使用的function。

XMark可以在不同的计算机上同步Firefox和Chrome(以及其他一些)之间的书签,密码和打开标签。

用于F-Spot的DropBox。

对于谷歌浏览器启用同步将同步您的书签。 在较新的版本中,它允许您同步自动填充,书签,扩展,首选项和主题。

如果网络启动,您可以使用启动脚本(使用rsync)同步必要的文件。 因此,您可以使用upstart触发脚本并将其基于网络就绪事件。

或者,也许可以使用Ubuntu-one来同步所讨论的文件。

Jorge Castro说“在较新的版本中”Chrome会让你同步历史记录。 我有最新的; 我认为这不是一个选择。 由于这是我心中的一项function,请告诉我您在哪里看到此信息。

或者你的意思是“未来的版本”?

您是否经常同时使用所有三个系统,在所有系统上进行大量数据更改? 如果没有,是否有任何理由登录rsync和另一个注销不会? 也许不是完美的解决方案,但足够……

登录时:

 rsync -avz -e ssh remote1:~/.thunderbird/ ~/.thunderbird/ rsync -avz -e ssh remote2:~/.thunderbird/ ~/.thunderbird/ 

注销时:

 rsync -avz -e ssh ~/.thunderbird/ remote1:~/.thunderbird/ rsync -avz -e ssh ~/.thunderbird/ remote2:~/.thunderbird/ 

哪个remote1remote2是你不坐的两个系统?