tar를 사용하여 여러 파일을 빠르게 압축하는 방법

tar를 사용하여 여러 파일을 빠르게 압축하는 방법

여러 파일을 HPC 클러스터로 전송해야 합니다. 현재 scp 명령어를 사용하고 있는데, 파일 하나(각각 ~1.4GB)를 전송하는데 약 10분 이상이 소요됩니다. tar를 사용하면 전송 속도가 빨라진다는 것을 확인했지만 scp를 사용하여 파일을 전송하는 것보다 파일을 압축하는 데 시간이 훨씬 더 오래 걸린다는 것을 확인했습니다. 내가 사용하는 tar 명령은 다음과 같습니다.

tar -cvfz files.tar.gz files

rsync도 사용해 보았는데 bash가 원격 서버에 설치되어 있는데도 rsync를 인식하지 못한다는 오류가 계속 발생합니다. 저는 이 내용에 대해 잘 알지 못하므로 어떤 도움이나 조언이라도 주시면 감사하겠습니다!

답변1

특히 tar를 사용하면 출력을 로컬 디스크에 저장하는 대신 ssh로 간단히 파이프할 수 있습니다. 이는 빌드 전체 tar 아카이브를 기다릴 필요 없이 ssh를 통해 직접 스트리밍되므로 조금 더 빠릅니다.

tar zcvf - files | ssh user@hostname "tar xvzf - -C /home/user"

여전히 느리다면 압축을 전혀 하지 않는 것이 더 나을 수 있습니다.

tar cvf - files | ssh user@hostname "tar xvf - -C /home/user"

그러나 이는 파일을 한 번만 이동할 때만 유용합니다.


-Cscp를 구체적으로 사용하는 경우 압축을 활성화하기 위해 scp가 ssh에 전달하는 플래그가 있습니다 .

부분 파일 전송을 지원하고 변경되지 않은 파일의 재업로드를 건너뛰는(여러 업로드를 더 빠르게 만드는) rsync를 사용하기로 결정한 경우 --compress, -z맨 페이지에서 검색해야 합니다.

관련 정보