リモートサーバーからローカルサーバーにファイルをコピーするには、次のscpコマンドを使用しています。端末に次のコマンドを入力すると、コピーが開始されます。
scp -r user@machineA:/data/process/* /data/process/
リモートサーバーには約100個のファイルがあり、各ファイルのサイズは約11GBなので、上記のコマンドを実行するとファイルを1つずつコピーします。端末で直接実行できるいくつかのコマンドを実行しながら、同時に5つのファイルをコピーする方法はありますか?
GNU Parallelもインストールしましたが、ここでどのように使用するのかわかりません。端末で直接実行してファイルを並列にコピーするのに役立ちますか?それとも別の方法があればそうします。
ベストアンサー1
find
以下は、関連するリモートサーバーで実行されるコマンドですparallel
。
find /data/process/ -type f | parallel scp {} user@machineB:/data/process/
編集する:
より文書並列に実行されるジョブの数を制御する方法。
同時ジョブ数
--jobs
はまたは同等に提供されます-j
。
デフォルトは--jobs
CPU コアの数と同じです。
--jobs 0
できるだけ多くのジョブが並列に実行されます。
編集する:
これは別の質問でなければならず、すでに質問して答えています。リモートシステムでコマンドを実行するには?
ssh user@machineA 'find /data/process/ -type f | parallel scp {} user@machineB:/data/process/'