GNU/Linux >> Linux の 問題 >  >> Linux

2 つのサーバー間で大量のファイルをすばやくコピーする方法

解決策 1:

タールをお勧めします。ファイル ツリーがすでに類似している場合、rsync は非常に実行します 良い。ただし、rsync は各ファイルに対して複数の分析パスを実行してから変更をコピーするため、初期コピーの tar よりもはるかに低速です。このコマンドは、おそらくあなたが望むことをします。マシン間でファイルをコピーし、権限とユーザー/グループの所有権の両方を保持します。

tar -c /path/to/dir | ssh remote_server 'tar -xvf - -C /absolute/path/to/remotedir'

以下の Mackintosh のコメントによると、これは rsync に使用するコマンドです

rsync -avW -e ssh /path/to/dir/ remote_server:/path/to/remotedir

解決策 2:

外付けハード ドライブと同日宅配便。

解決策 3:

rsync を使用します。

HTTP 経由でエクスポートし、ディレクトリ リストを利用できる場合は、wget と --mirror 引数も使用できます。

SCP はすべてを暗号化している (したがって CPU のボトルネックになっている) ため、HTTP が SCP よりも高速であることは既にお分かりいただけたと思います。 HTTP と rsync は暗号化されていないため、より高速に動作します。

Ubuntu での rsync の設定に関するドキュメントは次のとおりです:https://help.ubuntu.com/community/rsync

これらのドキュメントでは、SSH を介した rsync のトンネリングについて説明していますが、プライベート LAN 上でデータを移動するだけであれば、SSH は必要ありません。 (私は、あなたがプライベート LAN を使用していると仮定しています。インターネットで 9-10MB/秒を取得している場合、どのような接続をしているか知りたいです!)

相対的に安全でない rsync サーバー (SSH に依存しない) をセットアップできるようにするその他の非常に基本的なドキュメントを次に示します:http://transamrit.net/docs/rsync/

解決策 4:

多くの議論はせずに、ネットワーク スイスアーミー ナイフである netcat を使用してください。プロトコルのオーバーヘッドはありません。ネットワーク ソケットに直接コピーしています。例

srv1$ tar cfv - *mp3 | nc -w1 remote.server.net 4321

srv2$ nc -l -p 4321 |tar xfv -

解決策 5:

rsync を使用する場合、大量のファイルがある場合、両端でバージョン 3 以降を取得しようとします .その理由は、転送を開始する前に、より古いバージョンがすべてのファイルを列挙するためです。新しい機能は インクリメンタル再帰 と呼ばれます .

<ブロック引用>

rsync が別の 3.x バージョンと通信しているときに、新しい増分再帰アルゴリズムが使用されるようになりました。これにより、(すべてのファイルが検出される前に) 転送がより迅速に開始され、必要なメモリが大幅に少なくなります。いくつかの制限については、マンページの --recursive オプションを参照してください。


Linux
  1. LinuxおよびUnixでネットワーク経由で大きなファイルをすばやく転送する方法

  2. SCPとSFTPを使用してLinuxホスト間でファイルを安全にコピーする方法

  3. LinuxでRsyncコマンドを使用するにはどうすればよいですか?

  1. 2 回の間に作成されたファイルを削除するには?

  2. ファイルが正常に転送されるまで rsync を繰り返し呼び出す方法

  3. crontab -e ファイルをバックアップする方法

  1. ncおよびpvコマンドを使用して2台のコンピューター間でファイルを転送する方法

  2. SCPとFTPを使用してLinuxのサーバー間でファイルを転送する方法

  3. Linux – 2回の間に作成されたファイルを削除する方法は?