2011-08-31 5 views
37

Windows 7에서 rsync을 사용하려고합니다. cwRsync를 설치하고 Ubuntu 9.04에 연결을 시도했습니다.Windows에서이 rsync 연결이 갑자기 닫히는 이유는 무엇입니까?

$ rsync -azC --force --more-options ./ [email protected]:/my/path/ 
rsync: connection unexpectedly closed (0 bytes received so far) [receiver] 
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [receiver=3.0.5] 
rsync: connection unexpectedly closed (0 bytes received so far) [sender] 
rsync error: error in rsync protocol data stream (code 12) at io.c(610) [sender=3.0.8] 
+2

이 오류는 모두 해결 된 것 같습니다. 또한 디렉토리가 아닌 파일의 대상 파일 이름을 지정하는 경우에도 발생합니다. – Nick

+4

이것은 늦을 수는 있지만 후세 용으로 추가 할 수 있습니다.파일이 동기화되는 파일 시스템의 디스크 공간이 100 %에 도달했습니다. – bram

답변

3

나는 해결책을 얻는다. 나는 cygwin을 사용하고 있는데, 이것은 Windows 용 rsync 명령은 Windows 쉘에서만 작동하고 windows powershell에서는 작동합니다.

두 개의 리눅스 박스간에 몇 차례 동일한 오류가 발생했습니다. rsync와 호환되지 않는 버전 인 것으로 보입니다.

+0

대상 서버의 rsync가없는 경우에도 마찬가지입니다. –

4

이 오류 메시지는 아마 당신이 서버 이름을 잘못 입력 또는 서버에서 SSH 서버를 시작하는 것을 잊었다 중 하나를 의미합니다. ssh 서버가 포트 22의 서버에서 실행 중이고 방화벽이 설치되어 있지 않다는 것을 확실히 확인하십시오. ssh [email protected]으로 테스트 할 수 있습니다.

+0

nop 서버가 정상적으로 작동하고 scp 명령과 ssh 명령이 올바르게 작동합니다. – rkmax

+0

@rkmax 가능한 다른 원인으로 대답이 업데이트되었지만 ssh가 작동하면 해당 사항도 적용되지 않습니다. 불필요한 매개 변수없이 rsync를 시도한 다음 [wireshark] (http://wireshark.org/)와 같이 생성 된 패킷 덤프를 업로드 할 수 있습니까? – phihag

+0

예 22 포트에서 수신 대기중인 서버가 from_dir 및 user @ host : to_dir 만 사용하여 동일한 메시지를 수신하여 동일한 메시지를 수신했습니다. – rkmax

12

rsync 버전을 변경할 때 이것을 보았습니다.

rsync -e 'ssh ...

rsync.exessh.exe 같은 디렉토리에있을 때 : 이전 버전에서는 말을했다. 최신 버전의

, 나는 경로를 지정했다 :

rsync -e './ssh ...

를하고는했다.

+2

+1 더 좋은 예제 경로를 제외하면 rsync -e/usr/bin/ssh가 될 것입니다. – maverick

+1

@maverick 예'rsync -e/usr/bin/ssh.exe'가 훨씬 잘 작동 할 것입니다. -_- –

6

Linux (RH) 서버에서 Solaris 서버로 rsync를 시도했을 때만이 문제가 발생했습니다. 필자가 수정 한 사항은 rsync가 두 경로 모두에서 동일한 경로를 유지하고 rsync의 소유권이 동일하다는 것입니다.

Linux 상자에서 rsync 경로는/usr/bin이고, Solaris 상자에서는/usr/local/bin입니다. 그래서 솔라리스 상자에서 ln -s/usr/local/bin/rsync/usr/bin/rsync를했습니다.

나는 여전히 동일한 문제가 있었고 소유권의 차이가 있음을 확인했습니다. 리눅스에서 그것은 root였습니다 : root, solaris에서 bin : bin이었습니다. solaris를 root로 변경 : root가 수정했습니다.

+3

원격 rsync 바이너리가 비정상적인 위치에 있으면 rsync -azC --rsync-path =/usr/local/bin/rsync ...와 같이 지정할 수 있습니다. –

5

2 개의 Linux 상자간에이 오류가 발생했습니다. 원격 상자 및 로컬 상자에 RSYNC를 설치하면 쉽게 해결할 수 있습니다.

+0

그렇다면 rsync가 오류에 대해 더 잘 설명 할 수 있다면 좋을 것입니다. 이 질문에 대한 다른 모든 "대답"에 의해 생성 된 것과 똑같은 오류 메시지가 수신되었지만, 내 문제는 또 다른 기본적인 문제였습니다 ... Linux 상자에서 대상 디렉터리의 파일 사용 권한과 소유권을 확인했습니다. 이 답변에 언급 된 다른 문제 (rsync 경로, bin 버전 불일치, bin 권한, ssh 경로 등)가 없는지 확인한 후까지 발견하지 못했습니다. – hobs

+0

고마워; D 해결이 ... 내 대답은 여기에있다. –

21

나를 속이기 위해 나는 ssh 충돌이 있었다.

저는 ssh가 포함 된 Windows 경로에 Git이 설치되어 있습니다. 또한 cwrsync는 ssh를 설치합니다.

비결은 올바른 경로를 설정하는 배치 파일을 만드는 것입니다 : Windows에서

rsync.bat

@echo off 
SETLOCAL 
SET CWRSYNCHOME=c:\commands\cwrsync 
SET HOME=c:\Users\Petah\ 
SET CWOLDPATH=%PATH% 
SET PATH=%CWRSYNCHOME%\bin;%PATH% 
%~dp0\cwrsync\bin\rsync.exe %* 

이이 문제가 있는지 확인하는 where ssh를 입력 할 수 있습니다. 다음과 같은 메시지가 표시됩니다.

where ssh 
C:\Program Files (x86)\Git\bin\ssh.exe 
C:\Program Files\cwRsync\ssh.exe 
+1

또한 github의 git 클라이언트의 쉘 ssh 버전에 문제가있다. 'apt-cyg install openssh '을 실행하면이 문제가 해결되었습니다. 이 문제가 있을지 확신이 없다면 cygwin 프롬프트에서'which ssh'를 시도하십시오. –

+0

또는'where ssh' from Windows CLI – Petah

+0

안녕하세요, 미안하지만 같은 문제가있는 것처럼 보입니다.하지만 컴퓨터 환경에 대한 지식이 부족하여이 문제를 해결할 수 없습니다. http://stackoverflow.com/questions/32756423/rule-conflict-between-multiple-ssh 감사합니다. – leonsaysHi

관련 문제