![Ubuntu LTS 桌面 - 如何配置两台台式计算机之间的完全同步。应用程序、设置、文件和文件夹?](https://linux22.com/image/1072387/Ubuntu%20LTS%20%E6%A1%8C%E9%9D%A2%20-%20%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E4%B8%A4%E5%8F%B0%E5%8F%B0%E5%BC%8F%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B9%8B%E9%97%B4%E7%9A%84%E5%AE%8C%E5%85%A8%E5%90%8C%E6%AD%A5%E3%80%82%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E3%80%81%E8%AE%BE%E7%BD%AE%E3%80%81%E6%96%87%E4%BB%B6%E5%92%8C%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
我需要在 2 或 3 个 Ubuntu LTS 桌面之间设置实时同步。所有应用程序、所有文件和文件夹、所有设置、所有更改均实时同步。如果有人对其中一台计算机进行了更改,则该更改将被发送并同步到其他计算机...并返回。
有可能吗?不可能吗?您能分享一些新的想法吗?
答案1
通常,人们会用它rsync
来同步两台计算机。
不过,我认为你要求的可能要复杂得多。你说“所有应用程序”, 但是之后“只有一台计算机与具有相同用户帐户的其他计算机同步”。大多数应用程序是为所有用户安装的,而数据将是针对每个用户的,配置可能任何一个。
您需要:
- 要么
/etc/passwd
从另一台计算机复制,并将其与本地/etc/passwd
所有 uid >= 1000 的帐户进行比较,以找出要同步的帐户,要么只保留要同步的帐户列表 - 获取远程计算机中所有已安装的 Debian 软件包列表,将其与本地计算机上的列表进行比较,然后在两台计算机上都安装它们(
dpkg --get-selections
) - 对 Snaps、Flatpaks、Node 等执行相同操作(这很快就会变得非常繁琐!)
rsync
(双向)/etc/PACKAGE
以及etc/default/PACKAGE
在步骤 2 中找到的每个 PACKAGErsync /home/USER
对于在步骤 1 中找到的每个用户- 将所有这些放入仅从一台机器定期运行的 cron 作业中。
然后你肯定会发现你(或我)忘记了一些东西!千万不要在没有备份的情况下这样做。