이전 서버에서 데이터를 이동해야 하는 상황이 있습니다.호스트 1새 서버로:호스트 2. 문제는 호스트1이 호스트2를 볼 수 없다는 것입니다.하지만 다른 서버를 사용할 수 있습니다(로컬 호스트) SSH를 통해 Host1과 Host2에 연결합니다.
다음과 같이 작동한다고 상상해 보세요.호스트1->로컬호스트->호스트2
rsync를 사용하여 호스트1과 호스트2 간에 파일을 복사하는 방법은 무엇입니까? localhost 서버에서 이 명령을 시도했지만 다음과 같이 표시됩니다.소스와 대상은 동시에 원격일 수 없습니다.
rsync -avz host1:/workspace host2:/rasv1/old_code-de
답변1
답변2
터널링을 사용하여 SSH를 통해 rsync를 리디렉션할 수 있습니다.
user@host1로 로그인을 시작하고 "localhost"를 통해 host2에 대한 터널을 만듭니다(혼동을 피하기 위해 "your_host"라고 부르겠습니다).
ssh <your_host_user>@<your_host> -L 8080:<host2_ip>:22
해당 터미널을 열어두고 호스트 1의 다른 터미널에 다음을 입력합니다.
rsync -avzh -e "ssh -p 8080" <source_file> <host2_user>@127.0.0.1:/<target_folder>
물론 8080 대신 다른 포트를 사용해도 됩니다. SSH를 포함하지 않는 다른 방법을 사용하는 경우 가능하다고 생각하지만 테스트하지는 않았습니다.
답변3
내가 아는 한, rsync는 원격 서버에서 원격 서버로의 복사를 지원하지 않습니다.
간단한 파일 복사만 필요한 경우 scp
@eblock -3
이 지정한 옵션을 사용할 수 있습니다.
rsync가 필요한 경우 다음을 사용하여 두 서버를 로컬 폴더에 설치할 수 있습니다.sshfs
sshfs user@server1:/path/on/server1 /local/path1
sshfs user@server2:/path/on/server2 /local/path2
그런 다음 로컬 폴더 간에 파일을 복사합니다.
rsync -av /local/path1 /local/path2
제거:
fusermount -u /local/path1
fusermount -u /local/path2
속도/성능에 대해서는 잘 모르겠습니다 sshfs
.