A, B, C 세 대의 컴퓨터가 있다고 가정합니다.
- 머신 A는 어떤 네트워크에서도 머신 B에 액세스할 수 없으므로 둘 사이에 파일을 보낼 수 없습니다.
- 하지만 A와 B는 C(내 컴퓨터)에서 연결할 수 있습니다.
오늘은 대용량 파일을 A에서 B로 복사하고 싶습니다.
현재는 먼저 A에서 C로 복사한 다음 C에서 B로 복사해야 합니다. scp
들어오는 데이터를 중간에 저장하지 않고 대상 컴퓨터에 연결하거나 파이프하는 방법이 있습니까 ?
답변1
man scp
썼다(강조)
-3
두 원격 호스트 간에 복사본 전송로컬호스트를 통해. 이 옵션이 없으면 데이터가 두 원격 호스트 간에 직접 복사됩니다. [...]
따라서 필요한 것은 로컬 시스템을 통해 라우팅되는 복사 명령입니다(저는 -p
타임스탬프와 권한을 보존하기 위해 거의 항상 를 포함하므로 여기서도 그렇게 합니다).
scp -3p serverA:path/to/file(s) serverB:/path/to/destination
최신 버전 scp
에는-3
기본적으로 활성화됨2021년 8월 9일부터 이를 비활성화하려면 이제 를 지정해야 합니다 -R
. 이 타사 복제 기능을 사용하면 scp
두 호스트 모두 암호 및 비밀번호를 요청할 수 없으므로 암호 문구 및 비밀번호에 대한 프롬프트가 비활성화됩니다.
답변2
scp user1@A:from_file user2@B:to_file
그러면 문제가 해결될 것입니다. 읽다 man scp
.