
dir1 と dir2 (2 つの異なるサーバー) のファイルを同期したい。
ファイルのサイズや変更時刻が異なっていても問題ありません。
例: dir1 には file1、file2、file3、file4 が含まれ、dir2 には file2、file3、file5 が含まれます。
file5 を dir1 にコピーし、file1、file4 を dir2 にコピーします。
file2 のサイズは異なり、file3 の変更時間も異なりますが、私は気にしません。私のネットワークもプライベートなので、セキュリティのオーバーヘッドは発生させたくないのです。
どれが一番速いでしょうか:
NFS マウント上の rsync、scp、または cp ですか? また、正確には、対応するコマンド ラインは何ですか?
答え1
これは主に理論的な話です。制限要因はネットワーク帯域幅である可能性が高いからです。実際に注意すべき唯一のことは、ファイルのサイズと操作の数です。小さなファイルが多数あると、小さなコピー操作も多数発生します。
しかし、現状では、状況によって異なるため、何が「最速」であるかを確実に言うことは困難です。
で多くの問題が発生するとは思えませんrsync
。その理由は単純で、コピーを行う前に何かする必要があるかどうかをチェックするからです。必要のないものをコピーしないよりも効率的な方法はほとんどありません。
小さなファイルがたくさんある場合は、テープへの書き込み用に設計されているtar
のでtar
、ネットワーク経由でディレクトリ構造をストリーミングするのに非常に適しています。例:
tar cvfz - ./path_to_copy | ssh $remotehost "( cd $destination && tar xvfz - )"