私はしたいと思います一方通行直接接続せずに 2 台のマシン間で大きなディレクトリを同期します。両方のマシンに接続されたクラウド ストレージ (コンピューティング能力なし) を使用するか、マシンに交互に接続できる中間ストレージ デバイス (別のマシンではなく HDD、フラッシュ ドライブなど) を使用します。
注目すべき重要な点は、中間ストレージにはフォルダー全体を転送するのに十分なスペースがないが、最大のファイルを転送するには十分なスペースがあるということです。
流れは次のようになると思います:
- 宛先マシン上: 宛先フォルダのスナップショットを作成し、共有ストレージに保存します。
- ソースマシン上: ソース フォルダーの構造を共有ストレージのスナップショットと比較し、不足しているすべてのファイルをメタ情報とともに共有ストレージに配置します (共有ストレージの使用可能なスペースによって制限されます)。
- 宛先マシン上: 共有ストレージからファイルをコピーし、フローを繰り返す必要があるかどうかを通知します。
macOS/Linux シェルからこのようなことを実行するための既存のソリューションはありますか?
答え1
ただ使うだけ同期中間デバイス上で。
Rsync は次のようなタスクに最適です。ソースをソース マシンにし、宛先を宛先マシンにすれば完了です。
コマンドは次のようになります。
rsync -avz user@source_machine.local:/source/directory/ user@destination_machine.local:/destination/directory/
Rsync を使用すると、すべてが中間マシン上の CPU とネットワーク リソースのみを使用するネットワーク タスクになるため、中間マシン上のストレージ オーバーヘッドを気にすることなく動作するはずです。
しかし、どちらのオプションでも、ソース マシンとターゲット マシンで何らかの OS が実行されている必要があります。クラウドベースの「ダム」ストレージや、USB フラッシュ ドライブなどの単純な外部ストレージ デバイスは、間に何らかの OS がなければ「ブリッジ」できません。
最終的には、方程式の両側に OS が必要です。そして、中間デバイスでクラウド デバイスをマウントし、次に USB フラッシュ ドライブなどの外部ストレージ デバイスをマウントして、Rsync を実行するだけで準備完了です。