ssh를 통한 rsync“프로토콜 데이터 스트림 오류”(코드 12). ssh 작품


50

나는 시도했다 :

rsync -v -v -e 'ssh -p YY' ./testfile me@XXXXX:/home

에러 메시지

opening connection using: ssh -p YY -l me 146.6.84.206 rsync ->-server -vvve.s . /home 
[sender] make_file(testfile,*,0)
send_file_list done
send_files starting
server_recv(2) starting pid=17537
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600)[sender=3.0.6]
_exit_cleanup(code=12, file=io.c, line=600): about to call exit(12)

이것은 잘 작동합니다.

ssh -p YY me@XXXXX

이것은 나에게 문제가 sshd실행 중이 아니며 포트 YY가 방화벽으로 설정되어 있지 않다는 것을 나타냅니다. 어쨌든 확인했습니다.

다른 문제가있을 수 있습니까?

편집 : 문제는 "자기 해결"인 것 같습니다. 나는 다음날 복제 할 수 없었다. 로컬 컴퓨터를 시작했습니다. 아마도 나는 지난번과 다른 IP 주소를 가지고 있었을 것입니다. 이제 rsync가 마술처럼 작동합니다. 나는 그것이 사라지는 것에 비추어 볼 수 있었던 것에 대한 추측에 감사드립니다.


1
/home원격 서버 에서 쓰기 권한이 있습니까?
souravc

확실한. 내가 ssh 때 나는 고양이와 터치 등을 시작할 수 있습니다. 두 번째 생각에 나는 당신이 원격에 무슨 뜻인지 잘 모르겠습니다. 원격 서버에서 rsync를 호출하여 로컬로 물건을 옮기는 것에 대해 이야기하고 있습니다. 원본 폴더와 대상 폴더 모두에 대한 쓰기 권한이 있어야합니다.
user3391229

가끔씩이 오류 (Pelican 블로그를 서버로 재 동기화하려고 시도하는 동안)가 발생했습니다. 서버에 ssh 한 다음 rsync를 다시 시도하면 정상적으로 작동한다는 것을 알았습니다. 사이에 무슨 일이 일어나고 있는지 확실하지 않습니다.
Anthony C

원격 서버에 충분한 공간이 없으면이 오류가 발생할 수 있습니다.
마칸

답변:


84

존재하지 않는 원격 경로를 지정하면이 오류가 발생할 수도 있습니다.

OS X 에서이 오류가 발생했습니다.

$ rsync -avz public/ static:apps/myapp.com
building file list ... done
rsync: connection unexpectedly closed (8 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-47/rsync/io.c(453) [sender=2.6.9]

그것은 단순히 목적지 경로를 엉망으로 만드는 문제였습니다. apps디렉토리는 존재하지 않았다. I가 있음을 변경하는 경우 static:sites/myapp.com대신합니다 ( sites디렉토리는 않았다 존재), 오류가 멀리 갔다.

경로의 최종 디렉토리가 존재하지 않으면 (괜찮습니다 static:sites/mynewapp.com) 선행 디렉토리가 이미 존재하는 것으로 보입니다.


나는이 질문을 거의 잊었다. 그 이후로 같은 문제가 없었습니다. 나는 이것이 일어난 것 같아요.
user3391229

18
감사합니다! 그것은 가장 오해의 소지가있는 오류 메시지 여야합니다.
Frans

1
또한 rsync 실행 파일이 없으면 비슷한 오류가 표시됩니다. 주로 ansibles에서 보았습니다
mannoj

어떤 이유로 rsync가 디렉토리가 존재하지 않으면 디렉토리를 작성한다고 생각했습니다 ... 아님-목적지 디렉토리를 먼저 작성해야합니다. 대상 경로가 슬래시로 끝나는 경우 디렉토리가 존재해야합니다. 슬래시로 끝나지 않으면 그 위의 한 레벨이 존재해야합니다.
squarecandy

1
내 문제는 : 원격 디스크가 꽉 찼습니다.
장 버즈

15

rsync대상 호스트에 설치되지 않았을 때이 오류가 발생했습니다 . 내 경우의 오류 메시지도 말했다 rsync: command not found. 간단한

sudo apt-get install rsync

대상 호스트에서 문제가 해결되었습니다.


코드 12 오류가 있었고 rsync 명령을 찾을 수 없다는 메시지가 없습니다. 설치되면 오류가 사라졌습니다.
Hbar

3

원격 끝의 로그인 스크립트가 stdout에서 가비지를 생성합니까? 이것으로 확인하십시오

ssh -p YY me@XXXXX /bin/true > out.txt

경우 out.txt데이터를 포함, 당신의 기분을 상하게하는 문을 식별 .profile하거나 .bashrc하고 그들을 포장

if [ ! -t 1 ]; then
  echo garbage
fi

out.txt의 Nada 그러나 나는 또한 오늘 오후에 내가 문제를 재현 할 수없는 기간 동안 시도했다.
user3391229

문제를 일으킬 수있는 시점에 이것을 시도했지만 out.txt에도 아무것도 없었습니다.
joshreesjones

1

ssh 바이너리의 전체 경로를 입력해야 할 수도 있습니다.

rsync -v -v -e '/usr/bin/ssh -p YY' ./testfile me@XXXXX:/home

다른 가능한 원인이 있지만.


예, 참조 할 수있는 ssh 인스턴스가 여러 개인 경우에 발생할 수 있습니다. 그러나 다음 날에 사라 졌다는 사실은이를 불가능하게 만듭니다
user3391229

0

원격 시스템에서 rsync의 경로가 로컬 시스템이 가정 한 경로가 아닌 경우에도이 오류가 발생할 수 있습니다. -vv (또는 그 이상)를 지정하면 무슨 일이 일어나고 있는지 알 수 있습니다. 이것이 문제이면 --rsync-path 옵션을 사용하여 rsync 할 원격 경로를 지정할 수 있습니다.


0

이 오류가 발생했습니다.

rsync -e 'ssh -v'

debug1: Exit status 11

...

rsync error: error in rsync protocol data stream (code 12) at /BuildRoot
/Library/Caches/com.apple.xbs/Sources/rsync/rsync-51/rsync/io.c(453)
[sender=2.6.9]

원격 호스트로 ssh 할 수 있었고 디스크 공간이 부족하다는 것을 알았습니다.

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