我有两台计算机连接到同一个家庭网络。我想在两台计算机之间同步某些文件夹。过去我已经为此使用过 unison,我认为这可能是一个很好的解决方案。这次我想使这个过程自动化,以便不依赖我的记忆......
我正在考虑使用 cron 和 unison 的命令行版本来设置每日备份。现在,要进行同步,两台计算机必须同时打开,但情况并非总是如此。
为了解决这个问题,我认为一个好主意是在两台计算机中的一台(我们称之为 PC1)上创建一个小脚本。该脚本应执行以下操作:
- 检查另一台计算机(PC2)是否已开机。
- 如果 PC2 已关闭,则不执行任何操作。
- 如果 PC2 已打开,则检查上次同步发生的时间
- 如果两台电脑上次同步的时间少于 24 小时(例如),则不执行任何操作。
- 如果上次同步发生在 24 小时之前,则执行 unison
此时,我可以在 PC1 上每 10 分钟运行一次脚本。当 PC2 关闭时,什么也不会发生。一旦 PC2 开启,就会执行一次 unison。如果 PC1 和 PC2 都保持开启状态一段时间,则不会发生同步,除非超过 24 小时。我认为这应该可行,至少在理论上是这样。
问题是我不知道如何实现第 3 点到第 5 点。我如何检查上次同步的时间?还有其他方法可以解决我的问题吗?请注意,我不想使用云存储(需要同步大量文件、速度等)。
谢谢!
答案1
根据您的描述,您可能需要仔细了解一下 BTSync。这是一款 p2p 同步应用程序,但它仅使用自托管存储。
在 Linux 上,它依赖于配置文件和 Web 界面,但仍然比 unison 更容易运行。
相比 unison 的优势:
- 轻松设置
- 对所有操作系统的强大支持
- 移动客户端(只要任何一台电脑处于打开状态,就可以像云一样访问您的文件)
- 从 LAN 同步到互联网的无缝切换
主要缺点是这是来自 BitTorrent 的闭源软件。
如果您想尝试一下,可以在这里找到有关 ask 的更多信息: 如何运行 BitTorrent Sync?