지금까지 가장 쉬운 방법은 scp를 통해 복사하는 것입니다. 또한이 구문은 실제로 다른 제안과는 다르게 작동합니다.
이 구문을 쉽게 이길 수는 없습니다. 복잡한 파이프를 고려하지 않고도 재귀 적으로 복사, 재 동기화 또는 원하는 것을 반복 할 수 있습니다. 이 구문은 직관적으로 명확하며 Sys Admins가 더 쉽게 지원할 수 있으며 cat 을 쓸모 없게 만듭니다 .
scp -3 devappserver:/path/to/copy/from qaappserver:/path/to/copy/to
에서 scp를 man 페이지 : -3
두 개의 원격 호스트 사이의 사본은 로컬 호스트를 통해 전송됩니다. 이 옵션을 사용하지 않으면 데이터가 두 원격 호스트간에 직접 복사됩니다. 이 옵션은 진행률 표시기를 비활성화합니다.
아래 예에서
- 워크 스테이션 이름은 MacBook-Pro입니다.
- Dev Jump Box의 이름은 devjumpserver입니다.
- Dev Application Server의 이름은 devapplicationserver입니다.
- QA 점프 박스의 이름은 qajumpserver입니다
- QA 응용 프로그램 서버의 이름은 qaapplicationserver입니다.
- 670GB / etc / hosts 파일의 테스트 사본을 수행합니다. ;-)
- SSH 공개 키 인증이 구성되었다고 가정합니다.
다음은 적절한 점프 (일명 배스 천 서버)를 통해 워크 스테이션에서 애플리케이션 서버로의 직접 액세스를 설정하는 ~ / .ssh / config 파일입니다.
맥북 프로 : ~ barrychapman $ 고양이 ~ / .ssh / config
주최자 *
ServerAliveInterval 60
호스트 개발 애플리케이션
HostName devapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@devjumpserver.example.com -W % h : % p
사용자 barrychapman
호스트 qaapplicationserver
HostName qaapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@qajumpserver.example.com -W % h : % p
사용자 barrychapman
맥북 프로 : ~ barrychapman $
대상 서버에 파일이 있는지 테스트 중입니다.
MacBook-Pro : ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
ls : / tmp / hosts에 액세스 할 수 없음 : 해당 파일 또는 디렉토리가 없습니다.
신호 1에 의해 사망.
맥북 프로 : ~ barrychapman $
이제 워크 스테이션을 통해 Dev Application 서버에서 QA Application으로 파일을 복사 해 봅시다.
MacBook-Pro : ~ barrychapman $ scp -3 devapplicationserver : / etc / hosts qaapplicationserver : / tmp /
신호 1에 의해 사망.
신호 1에 의해 사망.
맥북 프로 : ~ barrychapman $
이제 QA 애플리케이션 서버에 복사 된 파일이 있는지 확인하십시오. 이번에는 거기에있을 것입니다.
MacBook-Pro : ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
/ tmp / hosts
신호 1에 의해 사망.
맥북 프로 : ~ barrychapman $
노트
ProxyCommand 연결을 닫으면 "Killed by signal 1"이라는 경고 메시지가 나타납니다. 이것은 ProxyCommand 연결을 해제하는 SSH이며 걱정할 것이 없습니다. LogLevel Quiet
요새 호스트 구성 스탠자 에 추가 하여 제거 할 수 있습니다 .