Назад | Перейти на главную страницу

rsync через ssh из linux в windows несоответствие протокола sbs 2003

Возможный дубликат:
Несоответствие версии протокола - чиста ли ваша оболочка?

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