我想单程无需直接连接即可在两台机器之间同步大目录。要么使用连接到两台机器的一些云存储(没有计算能力),要么使用可以交替连接到机器的中间存储设备(如硬盘、闪存驱动器,而不是另一台机器)。
需要注意的是,中间存储的空间不足以存储整个文件夹,但足以传输最大的文件。
我想象的流程是:
- 在目标机器上:创建目标文件夹的快照并将其放在共享存储上。
- 在源机器上:将源文件夹的结构与共享存储中的快照进行比较,并将所有丢失的文件及其元信息放入共享存储(受共享存储上可用空间的限制)。
- 在目标机器上:从共享存储复制文件并告知是否应重复流程。
是否已经存在可以从 macOS/Linux shell 执行类似操作的解决方案?
答案1
只需使用Rsync在中间设备上。
Rsync 非常适合这样的任务:将源设为源机器,将目标设为目标机器,就可以了。
该命令将是这样的:
rsync -avz user@source_machine.local:/source/directory/ user@destination_machine.local:/destination/directory/
这应该可以正常工作,无需担心中间机器上的存储开销,因为当使用 Rsync 时,这一切都变成了仅利用中间机器上的 CPU 和网络资源的网络任务。
但这两种选择都要求源计算机和目标计算机都运行某种操作系统。单独的基于云的“哑”存储或简单的外部存储设备(如 USB 闪存驱动器)之间如果没有某种操作系统,就无法“桥接”。
最终,您需要一个操作系统来满足等式的两边。也许中间设备可以安装云设备,然后安装外部存储设备(如 USB 闪存驱动器),然后您只需运行 Rsync 即可开始工作。