rsync 오류: io.c(600)의 rsync 프로토콜 데이터 스트림(코드 12)에 오류가 있습니다.

rsync 오류: io.c(600)의 rsync 프로토콜 데이터 스트림(코드 12)에 오류가 있습니다.

최근에 SSH를 통해 rsync를 할 수 없었습니다. 같은 오류가 발생할 때마다

bash: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]

나는 달리고 있다

sudo rsync -av /var/www/html/somedir/ [email protected]:Users/myuser/Desktop/ec2backup

이 게시물의 목적을 위해 사용자 이름, IP 및 디렉터리가 변경되었습니다.

과거에는 bash_history를 사용하여 확인한 것과 똑같은 명령을 실행했습니다.

내가 시도한 것:

  1. 다른 서버에서 유사한 명령을 실행하여 동일한 오류 메시지가 나타났습니다.
  2. 로컬에서 rsync를 테스트했는데(로컬 디렉터리에서 로컬 디렉터리로) 완벽하게 작동했습니다.

변경된 유일한 점은 최근 Virtualbox와 Vagrant를 설치했다는 것입니다. 내 로컬 컴퓨터에서 인증/포트/등을 엉망으로 만들었을 수도 있습니까?

어떤 도움이라도 대단히 감사하겠습니다.

답변1

rsync가 999.999.99.9에 설치되지 않았습니다.

답변2

내 문제는 win10 2004 빌드 19041.685에 사전 설치된 SSH_for_Windows_7.7p1, LibreSSL 2.6.5와 함께 cwrsync_6.2.1_x64를 사용하고 있다는 것입니다.

rsync 명령에서 특정 rsync 빌드와 함께 제공되는 ssh.exe를 가리켜야 합니다. 예를 들어:

rsync -avHz -e "path_to\cwrsync_6.2.1_x64_free\bin\ssh.exe" --partial ...

답변3

대상 디렉터리가 기존에 존재하지 않았을 때 이 오류 오류가 발생했습니다. 소스 데이터 파일: /a/b/c/d/data, rsync -av -e ssh /a/b/c/d/ 호스트 이름:/a/b/c/d에는 대상 디렉터리 호스트 이름:/이 필요합니다. a/b/c가 이미 존재합니다.

최후의 수단으로 매뉴얼 페이지를 읽어보니 이것이 의도된 동작이라는 것을 알 수 있었습니다.

답변4

cygwin을 사용하여 'which rynsc'를 수행했고 결과는 cygwin 설정 프로그램에서 제공하는 rsync였습니다. 이전에 Cygwin 설정을 통해 rsync를 설치했습니다. 그러나 Cygwin에서 ' which ssh'를 실행했을 때 Windows 경로의 SSH를 가리키고 있었습니다. 그래서 Cygwin을 종료하고 cygwin 설정 프로그램을 실행하고 cygwin에서 ssh를 설치했습니다. 그런 다음 동일한 두 개의 이전 명령(rsync 및 ssh)을 다시 수행했으며 두 바이너리 모두 cygwin 바이너리를 가리키고 있었습니다. 그런 다음 cygwin에서 rsync를 수행했을 때 전혀 문제 없이 작동했습니다.

관련 정보