tar(아래에는 tar의 예 없음)를 통해 scp 풀 작업을 수행하여 약 10개의 디렉터리가 하나의 tar 파일에만 기록되도록 하고 싶습니다.
user@localhost:/home/user> scp -r remoteuser@remotehost:dir_to_transfer ./
원격 컴퓨터에 디렉터리가 있는데 각 디렉터리에는 전송할 작은(~28k) 파일이 약 10,000개 있습니다. 파일 할당량으로 인해 원격 호스트(remotehost)에서 tar 명령을 실행할 수 있는 여유 공간이 많지 않습니다. 방화벽 규칙으로 인해 로컬 컴퓨터(localhost)에서만 전송을 시작할 수 있습니다.
파일 수가 많으면 전송 시간이 매우 길어집니다.
데이터를 "푸시"할 때 이를 수행하는 방법에 대한 예를 찾았지만 데이터를 "풀"할 때 이를 수행하는 방법을 알고 싶습니다.
로컬 머신 정보:
운영 체제: OpenSuSe 13.2(x86_64)
배쉬 4.2.53(1)
OpenSSH_6.6.1p1, OpenSSL 1.0.1k-fips 2015년 1월 8일
원격 기계 정보:
- 운영 체제: CentOS 버전 5.11(최종 버전)
- 배쉬 3.2.25(1)
- OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 2008년 7월 1일
답변1
부터 시작해 보세요user@localhost
> ssh -l remoteuser remotehost "tar cf - dir_to_transfert" > remote.tar
어디
>
알림입니다ssh -l remoteuser remotehost
원격 호스트에 연결"tar cf - dir_to_transfert"
표준 출력에서 원격 tarin 실행> remote.tar
SSH의 출력을 로컬 파일 이름인 Remote.tar로 리디렉션합니다.
원격 호스트에서 tar를 사용할 수 있는 경우 이 방법이 작동합니다.