Я попытался:
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 волшебным образом работает. Я был бы признателен за то, что это могло произойти в свете этого.
Вы также можете получить эту ошибку, если указали путь, который не существует.
Я получил эту ошибку в 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]
Повернулось это просто вопрос о неправильном пути назначения. [F2] dir не существует. Когда я изменил это на static:sites/myapp.com вместо этого (существует sites dir, ошибка исчезла.
Это нормально, если конечный каталог в пути не существует (я мог бы сделать static:sites/mynewapp.com ]), но, как представляется, любой предшествующий каталог уже должен существовать.
Вы также можете получить эту ошибку, если указали путь, который не существует.
Я получил эту ошибку в 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]
Повернулось это просто вопрос о неправильном пути назначения. [F2] dir не существует. Когда я изменил это на static:sites/myapp.com вместо этого (существует sites dir, ошибка исчезла.
Это нормально, если конечный каталог в пути не существует (я мог бы сделать static:sites/mynewapp.com ]), но, как представляется, любой предшествующий каталог уже должен существовать.
Создает ли ваш скрипт входа в удаленном конце мусор на stdout? Проверьте это с помощью
ssh -p YY me@XXXXX /bin/true > out.txt
Если out.txt содержит данные, определите оскорбительные утверждения в ваших .profile или .bashrc и заверните их в
if [ ! -t 1 ]; then
echo garbage
fi
Я получил эту ошибку, когда rsync не был установлен на целевом хосте. Сообщение об ошибке в моем случае также сказало rsync: command not found. Простой
sudo apt-get install rsync
на целевом узле решил проблему.
Эта ошибка также может произойти, если путь к rsync в удаленной системе не соответствует локальной системе. Вы можете видеть, что происходит, указав -vv (или даже больше vs). Если это проблема, вы можете указать путь удаленного доступа к rsync с опцией -rsync-path.
Я видел эту ошибку:
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 на удаленный хост и обнаружил, что он был вне дискового пространства .
Возможно, вам понадобится ввести полный путь к двоичному файлу ssh, т. е.
rsync -v -v -e '/usr/bin/ssh -p YY' ./testfile me@XXXXX:/home
Хотя возможны и другие возможные причины.
Создает ли ваш скрипт входа в удаленном конце мусор на stdout? Проверьте это с помощью
ssh -p YY me@XXXXX /bin/true > out.txt
Если out.txt содержит данные, определите оскорбительные утверждения в ваших .profile или .bashrc и заверните их в
if [ ! -t 1 ]; then
echo garbage
fi
Я получил эту ошибку, когда rsync не был установлен на целевом хосте. Сообщение об ошибке в моем случае также сказало rsync: command not found. Простой
sudo apt-get install rsync
на целевом узле решил проблему.
Эта ошибка также может произойти, если путь к rsync в удаленной системе не соответствует локальной системе. Вы можете видеть, что происходит, указав -vv (или даже больше vs). Если это проблема, вы можете указать путь удаленного доступа к rsync с опцией -rsync-path.
Я видел эту ошибку:
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 на удаленный хост и обнаружил, что он был вне дискового пространства .
Возможно, вам понадобится ввести полный путь к двоичному файлу ssh, т. е.
rsync -v -v -e '/usr/bin/ssh -p YY' ./testfile me@XXXXX:/home
Хотя возможны и другие возможные причины.