![하나의 원격 서버에서 다른 원격 서버로 병렬로 rsync 100개 파일(각각 30GB 크기)](https://linux55.com/image/191090/%ED%95%98%EB%82%98%EC%9D%98%20%EC%9B%90%EA%B2%A9%20%EC%84%9C%EB%B2%84%EC%97%90%EC%84%9C%20%EB%8B%A4%EB%A5%B8%20%EC%9B%90%EA%B2%A9%20%EC%84%9C%EB%B2%84%EB%A1%9C%20%EB%B3%91%EB%A0%AC%EB%A1%9C%20rsync%20100%EA%B0%9C%20%ED%8C%8C%EC%9D%BC(%EA%B0%81%EA%B0%81%2030GB%20%ED%81%AC%EA%B8%B0).png)
한 원격 서버에서 다른 원격 서버로 30GB 크기의 파일 100개를 전송해야 합니다.
전송하려는 파일을 모두 이라는 파일에 저장했습니다 to_transfer
. 대부분의 파일이 이 형식입니다.
- 1.데이터
- 1.idx
- 1. vif
모든 파일은 , n.dat
, n.idx
.n.vif
이 명령을 사용하고 있습니다.
rsync -azP --remove-source-files --progress --files-from=/storage/to_transfer /storage [email protected]:/tmp
이렇게 하면 파일이 하나씩 전송되지만 모든 파일을 병렬로 이동하고 싶고 대역폭은 1GBit/s로 보장됩니다. 어떻게 하면 최대한 활용할 수 있나요?
전송이 완료된 후에는 파일도 삭제합니다.
답변1
https://www.gnu.org/software/parallel/man.html#예: -Parallelizing-rsync
cd src-dir
find . -type f |
parallel -j10 rsync -zR -Ha ./{} fooserver:/dest-dir/