![2개의 VM 사이의 SCP 파일](https://rvso.com/image/1345309/2%EA%B0%9C%EC%9D%98%20VM%20%EC%82%AC%EC%9D%B4%EC%9D%98%20SCP%20%ED%8C%8C%EC%9D%BC.png)
2개의 가상 머신이 있습니다. 첫 번째 가상 머신은 소스 파일이 저장되는 곳입니다. 두 번째 가상 머신은 내 bash 스크립트가 있는 곳이며 소스에서 두 번째 가상 머신으로 파일을 복사해야 합니다.
Bash에서 이 작업을 어떻게 수행할 수 있나요?
내 스크립트가 세 번째 컴퓨터에서 실행 중일 때 Bash의 두 번째 가상 컴퓨터로 SCP 파일을 보낼 수 있나요? 그렇다면 이를 수행하는 방법을 알려주십시오.
답변1
가능합니다(두 호스트 모두 SSH를 수신하고 첫 번째 원격 호스트가 두 번째 호스트를 볼 수 있는 한)! 한번 시도해 보는 게 어때요?
scp remote1:/path/to/file remote2:/path/to
이 두 호스트 모두에 대해 사용자 이름 및/또는 비밀번호를 제공해야 할 수도 있습니다(사용자 이름이 시스템마다 다른 경우).
에이전트 전달이 활성화된 에이전트 기반 인증을 사용하는 경우 비밀번호를 제공할 필요가 없습니다(이것이 제가 선호하는 작업 방법입니다).
이는 Bash(또는 가상 머신)와는 아무런 관련이 없으며 모든 셸에서 작동해야 합니다.
답변2
이를 수행하는 일반적인 방법은 원격 시스템 중 하나에 SSH를 통해 접속하고 거기에서 scp를 실행하는 것입니다.
#3rd-vm> ssh 2nd-vm
#2nd-vm> scp file 1st-vm:~/
답변3
세 번째 시스템을 통해 브리지해야 하는 경우 ssh를 사용하여 다음과 같이 수행할 수 있습니다.
ssh remote1 cat file | ssh remote2 'cat > file'
또는 tar를 사용하면 다음과 같습니다.
ssh remote1 tar cf - path/to/copy | ssh remote2 tar xf - -C path/to/dest