2

У нас есть хранилище файлов Windows (не спрашивайте), и теперь я хочу rsync с машиной из Windows, Mac и Linux.

Поэтому я установил freeSSHd (оболочка входа установлена в C:/cygwin64/bin/sh.exe), настроил сертификаты и протестировал из Linux, test.dat имеет 0 байтов:

ssh myuser@winmachinename "C:/cygwin64/bin/true.exe" > test.dat

Даже двойная проверка с фактическим выводом работает нормально:

ssh myuser@winmachinename "C:/cygwin64/bin/ls.exe" > test.dat

Теперь, когда я звоню rsync:

rsync --progress -avz -e ssh myuser@winmachinename:/c/Users ~/test

это терпит неудачу с:

protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(174) [Receiver=3.1.0]

Что касается чтения документов, это не должно произойти, когда первый тест пройден успешно !?

У меня к настоящему времени нет идей - какие-либо рекомендации, как это отладить?

РЕДАКТИРОВАТЬ:

| OS            | rsync version                             |
|:--------------|:------------------------------------------|               
| Windows       | rsync  version 3.0.9  protocol version 30 |
| Linux         | rsync  version 3.1.0  protocol version 31 |

1 ответ1

0

Кажется, проблема была в пути.

Так как у меня есть mysysgit в PATH (но не cygwin), sh.exe вызвал исполняемые файлы из mysysgit и дал сбой. При добавлении cygwin в PATH перед mysysgit ошибка исчезает.

После этого у меня появилась новая проблема.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .