tar를 통해 scp/ssh 파일 전송(풀)을 파이프하는 방법(원격->로컬 컴퓨터에서 시작된 로컬 전송)

tar를 통해 scp/ssh 파일 전송(풀)을 파이프하는 방법(원격->로컬 컴퓨터에서 시작된 로컬 전송)

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.tarSSH의 출력을 로컬 파일 이름인 Remote.tar로 리디렉션합니다.

원격 호스트에서 tar를 사용할 수 있는 경우 이 방법이 작동합니다.

관련 정보