Ошибка в потоке данных протокола rsync (код 12) в io.c(605) [Receiver = 3.0.9]
Я пытаюсь выполнить rsync данные из одного окна ubuntu в другое, но всякий раз, когда я пытаюсь запустить команду, я получаю ошибку,
error in rsync protocol data stream (code 12) at io.c(605) [Receiver=3.0.9]
Я видел, как люди получали ошибки io.c(600)
и 610
в различных других местах в Интернете, но ничего о ошибке 605
. Какова причина этого вопроса? Как это можно исправить?
Команда, которую я запускаю,
/usr/bin/rsync -az -e /usr/bin/ssh [email protected]:filename /path/to/local/filename
Ответы
Ответ 1
По этому это официальный баг. В нижней части страницы одна жертва ошибки упоминает, что он не получает ее, когда файл, который он пытается отправить, составляет <100 ГБ или когда он использует флаг -W на клиенте (который скорее указывает на целую копию файла) чем разрешение rsync дельта; в основном, rsync немного лучше, чем scp).
Ответ 2
Я обнаружил, что эта ошибка возникла, когда жесткий диск целевой машины был заполнен.
Я нашел это, попробовав принятый ответ и получив ту же ошибку, поэтому он может помочь кому-то, для кого принятый ответ не работает. Очевидно, что это довольно конкретный ответ и очень легко диагностируется, поэтому я не предполагаю, что это сообщение об ошибке напрямую связано с отсутствием места на цели.
Ответ 3
Убедитесь, что rsync установлен на удаленном сервере.
Такая же проблема возникла, но исчезла после установки rsync на удаленном сервере. Без rsync на удаленном сервере, как он будет работать?
Ответ 4
У меня была такая же ошибка (на Debian Wheezy), а также ядро. Флаг -W
, предложенный в отчете об ошибке, упомянутом в ответе Parthian Shot, не помог. Также он не был связан с SSH, поскольку rsync выполнялся локально.
Проблема возникла из-за ошибок в файловой системе. Исправление их с помощью fsck
решило проблему. (Обязательно проверьте, не осталось ли процессов rsync
.)
Ответ 5
По моему опыту эта ошибка возникает из-за того, что на локальном хосте еще не сохранен ключ удаленного хоста, а ssh отклоняет соединение в фоновом режиме.
su - localUser -c "/usr/bin/rsync -avzh -e \"/bin/sshpass -p ${password} \
ssh -oPort=remotePort -l remoteUser\" \
remoteServer:/remoteFolder /localFolder"
В объясненном сценарии вышеприведенная команда завершилась с ошибкой:
error in rsync protocol data stream (code 12) at io.c(605) [Receiver=3.0.9]
без приглашения принять удаленный ключ. Чтобы решить проблему, просто подключитесь к удаленному хосту вручную с помощью ssh как localUser, и когда вас спросят: "Вы хотите принять удаленный ключ хоста yes/no, выберите" yes ".
После этого выполнение полной команды выше должно работать нормально.
ПРИМЕЧАНИЕ: если вы подключаетесь к удаленному компьютеру с помощью @[имя_сервера] и @[имя_сервера]. [имя домена], тогда необходимо, чтобы удаленный хост-ключ был настроен для обоих вариантов, как описано выше.
Ответ 6
Эта ошибка возникла при загрузке/обновлении файлов из системы RHEL (клиент) в систему (сервер) FreeBSD.
rsync действительно дал сообщение о libiconv.so.3, которое было необходимо, но недоступно.
libiconv.so.3 не был на RHEL (клиент).
rsync на RHEL (клиент) запущен и работал нормально.
Выключена установка rsync на FreeBSD (сервере) была нарушена. libiconv.so.3 отсутствует. В связи с этим rsync на системе FreeBSD (сервер) не смог запустить и вызвать указанную проблему в системе RHEL (клиент).
Переустановка rsync на FreeBSD (сервер) решила проблему.
Ответ 7
Для меня это был отсутствующий каталог назначения на компьютере назначения.