Я хотел быОдностороннее движениесинхронизировать большой каталог между двумя машинами без прямого подключения. Либо используя какое-либо облачное хранилище (без вычислительной мощности), подключенное к обеим машинам, либо промежуточное устройство хранения (например, жесткий диск, флэш-накопитель, а не другую машину), которое можно подключать к машинам попеременно.
Важно отметить, что на промежуточном хранилище недостаточно места для всей папки, хотя для передачи самого большого файла его вполне достаточно.
Я представляю себе следующий поток:
- На машине назначения: Создать снимок папки назначения и поместить его в общее хранилище.
- На исходной машине: Сравните структуру исходной папки со снимком из общего хранилища и поместите все отсутствующие файлы с метаинформацией в общее хранилище (ограничено доступным пространством в общем хранилище).
- На машине назначения: Скопируйте файлы из общего хранилища и сообщите, следует ли повторить процесс.
Есть ли уже готовое решение, позволяющее сделать что-то подобное из оболочки macOS/Linux?
решение1
Просто используйтеRsyncна промежуточном устройстве.
Rsync идеально подходит для такой задачи: сделайте источником исходную машину, а местом назначения — машину назначения, и все готово.
Команда будет выглядеть примерно так:
rsync -avz user@source_machine.local:/source/directory/ user@destination_machine.local:/destination/directory/
Это должно работать без каких-либо проблем с накладными расходами на хранилище на промежуточной машине, поскольку при использовании Rsync все это становится сетевой задачей, которая просто использует ресурсы ЦП и сети на этой промежуточной машине.
Но оба эти варианта требуют, чтобы на исходной и целевой машинах была запущена какая-то ОС. Одинокий кусок облачного «тупого» хранилища или простое внешнее устройство хранения, такое как USB-флеш-накопитель, не может быть «объединен» без какой-то ОС между ними.
В конечном итоге вам нужна ОС на обеих сторонах уравнения. И, возможно, промежуточное устройство может смонтировать облачное устройство, а затем смонтировать внешнее устройство хранения, например USB-флешку, а затем вы можете просто запустить Rsync, и все в порядке.