Rsync over ssh "ошибка в потоке данных протокола" (code 12). ssh works

Я пытался:

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 donesend_files startingserver_recv(2) starting pid=17537rsync: 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 волшебным образом работает. Я был бы признателен за предположения относительно того, что это могло быть в свете его ухода.

Вы также можете получить эту ошибку, если укажете несуществующий удаленный путь.

Я получил эту ошибку в OS X:

$ rsync -avz public/ static:apps/myapp.combuilding file list ... donersync: 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 режиссера не существовало. Когда я изменил это на static:sites/myapp.com вместо этого (в sites реж сделал существует), ошибка исчезла.

Это нормально, если конечный каталог в пути не существует (я мог бы сделать static:sites/mynewapp.com) но, похоже, любой предыдущий каталог уже должен существовать.

Я получил эту ошибку, когда rsync не был установлен на целевом хосте. В сообщении об ошибке в моем случае также говорилось rsync: command not found. Простой

sudo apt-get install rsync

на целевом хосте проблема решена.

Создает ли ваш сценарий входа в систему на удаленном конце мусор в stdout?Проверьте это с помощью

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

Если out.txt содержит данные, идентифицируйте оскорбительные утверждения в вашем .profile или .bashrc и завернуть их в

if [ ! -t 1 ]; then  echo garbagefi

Эта ошибка также может возникнуть, если путь к rsync в удаленной системе не соответствует тому, что предполагает локальная система. Вы можете увидеть, что происходит, указав -vv (или даже больше vs). Если это проблема, вы можете указать удаленный путь к rsync с помощью параметра --rsync-path.

Возможно, вам потребуется указать полный путь к двоичному файлу ssh, т.Е.

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

Хотя есть и другие возможные причины.

Я столкнулся с этой ошибкой, потому что я синхронизировался с диском, который был заполнен! Проверьте использование вашего диска, если другие решения здесь не помогут вам решить эту проблему.

Я получил эту ошибку в потоке данных протокола rsync (код 12) для пары rsync с разными версиями. Поэтому, пожалуйста, проверьте версии rsync как на клиенте, так и на сервере.

В моем случае локальная rsync была версии 2.6.9 (на Mac OSX), в то время как удаленная была версии 3 (сейчас не помню точную версию). Как только я обновил свой локальный rsync до версии 3 (используя brew), проблема была устранена.

Я видел эту ошибку:

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 к удаленному хосту и обнаружил, что на нем не хватает места на диске.

Есть ли у вас разрешение на запись в “/home” удаленного сервера?

Нехватка места на удаленном сервере также может вызвать эту ошибку.

Конечно. Когда я использую ssh, я могу начать делать cat и touch и т.д. Если подумать, я не совсем понимаю, что вы подразумеваете под удаленным. Я говорю о вызове rsync на удаленном сервере для локального перемещения данных. У меня должны быть права на запись как в исходной, так и в целевой папке

Время от времени я получаю эту ошибку (при попытке повторно синхронизировать мой блог Pelican с моим сервером). Я обнаружил, что если я подключусь к серверу по ssh, а затем снова попробую rsync, он работает нормально. Не уверен, что происходит между ними.