Возможный дубликат:
Несоответствие версии протокола - чиста ли ваша оболочка?
Я пытаюсь создать резервную копию своего веб-сервера Linux на нашем локальном сервере Windows sbs 2003 в офисе. Я настроил ssh и cwrsync на сервере Windows и подтвердил, что сервер Linux может подключиться к серверу Windows с помощью команды:
ssh RemoteUser@xxx.xxx.xxx.xxx
Запрашивает пароль и подключается нормально. Однако когда я запускаю эту команду для запуска резервного копирования:
rsync -avz -e ssh home / account / public_html / some / small / directory / remote_user@xxx.xxx.xxx.xxx: / cygdrive / c / backup / destination / directory /
Я получаю эту ошибку после ввода пароля:
Несоответствие версии протокола - чиста ли ваша оболочка?
а потом умирает.
Что это значит и как это исправить?
Один из ваших сценариев входа в систему (.bashrc / .cshrc / и т. Д.) Может выводить данные на терминал, хотя этого быть не должно. Это вызывает ошибку ssh, когда он подключается и готовится к копированию, поскольку он начинает получать дополнительные данные, которых он не ожидает. Удалите вывод, который создается в сценариях запуска.
Вы можете проверить, является ли ваш терминал интерактивным и выводит только текст, используя следующий код в bashrc. Что-то эквивалентное существует и для других оболочек:
if shopt -q login_shell; then
[any code that outputs text here]
fi
Ошибка protocol version mismatch -- is your shell clean?
означает, что локальный rsync получает некоторые недопустимые данные с удаленного компьютера, которые не являются частью протокола rsync.
Обычно это вызвано сообщениями автоматического входа в оболочку, такими как сообщение дня (/etc/motd
), Следовательно is your shell clean?
часть.
Войдите в систему вручную и посмотрите, не появится ли такое сообщение. Чтобы rsync
для работы вы должны получить только удаленную командную строку. Если вы получили сообщение, попробуйте отключить его. Посмотрите на файлы конфигурации вашей оболочки (например, ~/.bashrc
, /etc/bash.bashrc
для оболочки bash), если они содержат какую-либо команду, производящую этот вывод.