rsync через ssh «ошибка в потоке данных протокола» (код 12). SSH работает

Я пытался:

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 волшебным образом работает. Я был бы признателен за предположения о том, что это могло бы быть в свете его ухода.

84
задан 19 May 2015 в 01:03

8 ответов

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

Я получил эту ошибку в 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]

Оказалось, это просто вопрос неправильного ввода пути назначения. Каталог приложений не существует. Когда я изменил это на static: sites / myapp.com вместо этого (каталог sites dir действительно ] существовал), ошибка исчезла.

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

110
ответ дан 19 May 2015 в 11:03
  • 1
    Предварительная нагрузка doesn' t немедленно работают, это должно изучить, как u используют компьютер, прежде чем это сможет предварительно загрузить в поршень. Другими словами, откройте браузер многократно, и он должен начать становиться мгновенным. Чем дольше Ваш ПК работает и Вы взаимодействующий с ним, тем лучше это добирается. Следовательно, почему точка 4 выше. Другая вещь о точке 4, когда Вы приостанавливаете, Вы сохраняете свой кэш – DanglingPointer 17 August 2016 в 12:03

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

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

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

if [ ! -t 1 ]; then
  echo garbage
fi
5
ответ дан 19 May 2015 в 01:03

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

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

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

1
ответ дан 19 May 2015 в 01:03

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

1
ответ дан 19 May 2015 в 11:03
  • 1
    Принятие этого, как это кажется корректным, но won' t быть в состоянии протестировать теперь, год спустя.:) Видят комментарии OP для источника к программе, которая может быть полезна для кого-то в будущем... – pztrick 28 October 2017 в 04:25

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

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

0
ответ дан 19 May 2015 в 11:03

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

sudo apt-get install rsync

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

27
ответ дан 19 May 2015 в 11:03
  • 1
    Скорость диска является хорошим тестом. Type:" sudo hdparm-Tt/dev/sda". на моем SDD, например, это добирается: " Синхронизация кэшируемых чтений: 11 392 МБ за 2,00 секунды = 5 699,93 МБ/с ### Синхронизация буферизированного чтения с диска: 1 568 МБ за 3,00 секунды = 522.25 MB/sec" – WinEunuuchs2Unix 17 August 2016 в 12:30

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

0
ответ дан 5 January 2021 в 22:53

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

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

0
ответ дан 5 January 2021 в 22:53

Другие вопросы по тегам:

Похожие вопросы: