원격 서버에서 로컬 서버로 파일을 복사하려면 다음 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
.
기본값은--jobs
CPU 코어 수와 동일합니다.
--jobs 0
가능한 한 많은 작업이 병렬로 실행됩니다.
편집하다:
이것은 또 다른 질문이어야 하며 이미 질문하고 답변했습니다. 원격 시스템에서 명령을 실행하는 방법은 무엇입니까?
ssh user@machineA 'find /data/process/ -type f | parallel scp {} user@machineB:/data/process/'