ssh 또는 다른 것을 통해 Rsync?


10

OSX에서 rsync를 Linux 또는 Unix 상자에서 사용하려고 시도했지만 제어 할 수 없습니다. 나는 이런 식으로 일하고있다

rsync -avz -e ssh remoteuser@remotehost:/remote/dir /this/dir/ 

반환 된 오류는 다음과 같습니다.

bash : rsync : 명령을 찾을 수 없음 rsync : 연결이 예기치 않게 닫혔습니다 (0 바이트 수신) [수신기] rsync 오류 : /SourceCache/rsync/rsync-37.3/rsync/io.c에서 원격 명령을 찾을 수 없습니다 (코드 127) ) [수신자 = 2.6.9]

그러나 문서를 읽은 후에 실제로 원격 호스트에 rsync 데몬을 설치해야한다고 생각하기 시작했습니다.

  1. 원격 호스트에 rsync 서버를 설치해야합니까?
  2. GUI 또는 비 GUI와 같은 무료 대안 은 원격 호스트에 아무것도 설치하지 않아도 됩니까?

감사!


1
현재 명령에 어떤 문제가 있습니까?
fideli

@fideli, 죄송합니다. 잊어 버렸습니다. 질문 편집
Dan Rosenstark

1
이 질문에 감사하지만 태그를 rsync달 수 있습니까?
Andrew Grimm

답변:


21

서버에서 rsync 명령이 필요하지만 데몬을 실행할 필요는 없습니다.

서버에서 작동하는 rsync 바이너리를 가져 와서 집 어딘가에 놓고이 플래그를 명령 행에 추가하십시오 --rsync-path=/home/user/path/to/rsync.

rsync를 서버에 복사하지 않으려면 scp 또는 sshfs를 사용하십시오.

sshfs user@host ~/sync/user-host
rsync -av ~/local-dir ~/sync/user-host/remote-dir

이 경우 rsync가 완전히 로컬로 실행되지만 변경 사항이 서버에 전파됩니다.


특히 서버가 GoDaddy에서 저렴한 호스팅 계획이므로 서버에서 rsync를 실행할 수 있을지 의문이므로이 솔루션을 많이 좋아합니다. 지금 +1!
Dan Rosenstark

OSX에 sshfs를 설치하는 가장 쉬운 방법은 무엇입니까? MacFuse 또는 더 쉬운 것이 있습니까?
Dan Rosenstark

MacFuse + (MacFusion 또는 sshfs-static-leopard), 나는 (OSX 사용자가 아님)
Tobu

네, MacFuse가합니다. sshfs 바이너리의 다운로드 페이지에서 확장자가 .gz 인 바이너리를 제공합니다. 따라서 gunzip 대신 이름을 바꿔야합니다. 짜증나지만 괜찮아! 감사합니다
Dan Rosenstark

6

원격 호스트에는 rsync가 있어야합니다. 반드시 rsync 서버 일 필요는 없습니다 (어쨌든 SSL 연결을 처리하지는 않겠지 만) 로컬 상자의 rsync는 원격 상자의 rsync와 통신해야합니다. ssh를 사용하여 둘을 연결하고 있습니다.

rsync가 원격 상자에 있다고 가정하면 SSH 로그인 셸의 기본 검색 경로에 있지 않습니다. 원격 상자의 기본 설정 및 권한에 따라 시도해 볼 수 있습니다

  • --rsync-path = 옵션 사용
  • 원격 ssh 쉘의 기본 경로 변경
  • 원격 SSH 쉘에서 rsync에 대한 별명 추가
  • 실행 된 원격 명령을 rsync의 절대 경로로 변경

또는 비슷한 것. 원격 호스트에 실행 파일로서 rsync (부 서버)가 없으면 추가해야합니다.


이것은 도움이되었으므로 +1 이었지만 Mac에서 PC로 실행하는 경우 Windows 측에서 rsync의 시작 디렉토리를 지정하는 방법이 궁금합니다. superuser.com/questions/1462861/…
Ryan

1

위에서 제안한 창의적인 sshfs 솔루션에도 불구하고 원격 호스트에서 rsync 데몬을 실행하지 않고 rsync를 사용하는 것은 그리 중요하지 않습니다. rsync의 효율성에 대한 전체 아이디어는 두 인스턴스가 로컬에서 체크섬을 계산하고 네트워크를 통해 비교하고 실제로 다른 파일의 해당 부분에 대해서만 실제 데이터를 전송하여 데이터 세트의 로컬 사본을 비교하도록하는 것입니다.

sshfs 또는 네트워크 마운트를 사용하는 경우 체크섬을 로컬로 계산하기 위해 원격 호스트에서 네트워크를 통해 전체 데이터 세트를 복사 한 다음 그 차이를 전송해야한다는 사실 만 숨겨져 있습니다. 모든 것을 로컬에서 삭제하고 많은 것을 'scp -r'하는 것이 더 빠르고 저렴합니다.


3
정확하게는 아닙니다. rsync는 파일이 크기와 타임 스탬프에 따라 수정되는지 확인하기 때문에 모든 파일을 scp하는 것보다 훨씬 효율적입니다. 그러나 실제로 파일 내의 rsync 증분 업데이트 메커니즘은 sshfs에 대해서는 의미가 없습니다.
Jaap Eldering

0

SCP를 사용해보십시오 . 이미 ssh 액세스 권한이 있으므로 원격 호스트에 다른 것을 설치할 필요가 없습니다 :)

원격 호스트에서 로컬 호스트로 파일을 복사하려면 다음을 사용하십시오.

# scp -R remoteuser@remotehost:/remote/dir /this/dir/ 

또는 다음을 사용하여 로컬 호스트에서 원격 호스트로 파일을 복사하십시오.

# scp -R /this/dir remoteuser@remotehost:/remote/dir 

1
고마워요, SCP는 훌륭하지만 "동기화"하지 않습니까?
Dan Rosenstark

1
작은 "r"이어야합니다.scp -r
0x4a6f4672
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.