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

scp を使用して複数のファイルを同時にコピーする方法

バックグラウンド タスクを wait コマンドで使用できます。Wait コマンドを使用すると、次の行を処理する前にすべてのバックグラウンド タスクが完了します。つまり、エコーは 3 つのノードすべての scp が完了した後に実行されます。

#!/bin/bash
scp -i anuruddha.pem myfile1.tar [email protected]:/tmp &
scp -i anuruddha.pem myfile2.tar [email protected]:/tmp &
scp -i anuruddha.pem myfile.tar [email protected]:/tmp &

wait
echo "SCP completed"

SSH は、いわゆる「多重化」を行うことができます。つまり、1 つの (1 つのサーバーに対して) より多くの接続を行うことができます。欲しいものを手に入れる方法の1つかもしれません。 「ControlMaster」などのキーワードを検索

2 番目の方法は、より多くの接続を使用して、すべてのジョブをバックグラウンドで送信することです:

for file in file1 file2 file3 ; do 
     scp $file server:/tmp/ & 
done

しかし、これはあなたの質問に対する答えです - 「複数のファイルを同時にコピーする方法」。速度を上げるために、より弱い暗号化 (rc4 など) を使用できます。また、ハード ドライブがボトルネックになる可能性があることも忘れないでください。SCP は暗黙的に転送速度を制限しないためです。

最後に rsync を使用します - 場合によっては、scp よりもはるかに高速です...


これが役立つかどうかはわかりませんが、通常はソースでファイルをアーカイブ (圧縮は必要ありません。アーカイブするだけで十分です) し、ダウンロードして展開します。これにより、プロセスが大幅に高速化されます。アーカイブ前は 1 GB のダウンロードに 8 時間以上かかりましたが、アーカイブ後は同じことを行うのに 8 分未満かかりました


Linux
  1. 検索を使用して複数のファイルの名前を変更するにはどうすればよいですか?

  2. SCPを使用してファイルを安全に転送する方法

  3. 特定のファイルを除外しながらrsyncを使用してディレクトリを再帰的にコピーする方法

  1. gnu cp コマンドを使用して複数のディレクトリにファイルをコピーする方法

  2. 1 つのコマンドで scp 経由で複数のファイルをコピーするにはどうすればよいですか?

  3. sshセッション内でscpを使用せずにファイルをコピーするには?

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

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

  3. Linuxで複数のファイルを圧縮する方法