我正在尝试解决以下情况:
我使用 3 台计算机,它们都运行 Xubuntu(相同的 LTS 版本)。现在我正在寻找一种方法来让它们在以下方面保持同步:- 已安装的软件包/软件 - 设置(启动程序、桌面、XFCE 栏(我真的爱上了这些!)等)- 数据
原因如下:两台台式机位于不同的房屋中,例如 A 和 B,还有一台笔记本电脑 C,我不想将它带到 A 或 B。或者我需要台式机的计算能力来进行笔记本电脑无法完成的一些较大的计算。
现在,至于第三部分(数据),我已经运行了一个 owncloud/seafile 服务器,它可以使我的东西保持同步,运行良好!
对于其他两点,我正在寻找解决方案。我读过关于 Ubuntu One 的文章,但如果有一个不使用其他人的服务(也不允许使用 Dropbox/Drive/...)的解决方案,我会很感激!
如果我能利用我的 Raspberry Owncloud 服务器来实现这一点,我会非常高兴。
举个例子,让我们考虑只保持 xfce 快捷方式和栏同步:如果我只
~/.config/xfce4/xfconf/xfce-perchannel-xml/
使用 owncloud 客户端为我的文件夹设置文件夹同步,这样可以吗?还是会因为硬件不同而出现问题?
至于安装的软件,我可以创建一个 cronjob 来运行,
dpkg --get-selections > <file>
并通过同步文件夹将其同步到所有其他机器,然后运行另一个 cronjob 来执行
dpkg --set-selections < <file> apt-get dselect-upgrade
安装所有软件包?
感谢您的帮助 :)
答案1
您可以使用Unison 文件同步器同步配置文件夹。我使用它来同步我的用户文件和电子邮件选项以及配置文件夹。
安装 unison:sudo apt-get install unison
。
然后你需要在文件夹中创建一个配置文件~/.unison
该文件可能是Synchronise_Profile.prf
:
# Roots of the synchronization
root = /home/username
root = ssh://[email protected]//home/username
#force = /home/username # If you want to always override remote.
#batch = true # If you do not want to have to confirm anything.
# Paths to synchronize
path = .config/xfce4/xfconf/xfce-perchannel-xml/
path = .config/xfce4/xfconf/ # And add any other folder to synchronize
# Some regexps specifying names and paths to ignore
ignore = Name temp.* # Any files you may want to ignore
ignore = Name *~
ignore = Name .*~
更多帮助Unison 文件同步器。
它通过 SSH 工作,因此您始终可以使用 SSH 密钥使其工作,这样您不必在每次同步时都输入密码。 有关 SSH 密钥的更多信息,请点击此处。
当然,unison
可以从命令提示符下工作,因此一旦您设置了 SSH 密钥并确保备份文件夹在配置文件上运行,您就可以将其添加到事件中cron
并透明地执行此操作。
编辑:刚刚意识到您还在寻找同步其他已安装的文件,这意味着这个响应只是部分的,因为它不能确保安装在一个系统上的软件安装在另一个系统中。
答案2
谢谢您的回复,Juan!
从我的角度来看,这意味着两台机器必须同时运行,就像使用rsync
over时一样SSH
?这在将内容同步到我的服务器时可以起作用。
对于软件更新,上述解决方案可以起作用。