터미널에서 일부 명령을 사용하여 원격 서버에서 파일을 병렬로 복사합니까?

터미널에서 일부 명령을 사용하여 원격 서버에서 파일을 병렬로 복사합니까?

원격 서버에서 로컬 서버로 파일을 복사하려면 다음 scp 명령을 사용하고 있습니다. 터미널에 다음 명령을 입력하면 복사가 시작됩니다.

scp -r user@machineA:/data/process/* /data/process/

이제 원격 서버에는 약 100개의 파일이 있고 각 파일의 크기는 약 11GB이므로 위 명령을 실행하면 파일을 하나씩 복사하게 됩니다. 터미널에서 직접 실행할 수 있는 일부 명령을 실행하면서 동시에 5개의 파일을 복사할 수 있는 방법이 있습니까?

GNU Parallel도 설치했지만 여기에서 어떻게 사용하는지 잘 모르겠습니다. 터미널에서 직접 실행하여 파일을 병렬로 복사하는 데 도움이 될 수 있습니까? 아니면 다른 방법이 있다면 그렇게 할 것입니다.

답변1

find다음은 및 관련 원격 서버에서 실행하는 명령입니다 parallel.

find /data/process/ -type f | parallel scp {} user@machineB:/data/process/

편집하다:

보다문서병렬로 실행되는 작업 수를 제어하는 ​​방법.

동시 작업 수 --jobs는 또는 동등하게 제공됩니다 -j.
기본값은 --jobsCPU 코어 수와 동일합니다.
--jobs 0가능한 한 많은 작업이 병렬로 실행됩니다.

편집하다:

이것은 또 다른 질문이어야 하며 이미 질문하고 답변했습니다. 원격 시스템에서 명령을 실행하는 방법은 무엇입니까?

ssh user@machineA 'find /data/process/ -type f | parallel scp {} user@machineB:/data/process/'

관련 정보