rsync 到 windows (cygwin)

rsync 到 windows (cygwin)

我们有一个 Windows 文件存储(不要问),现在我想从 Windows、Mac 和 Linux 与机器进行 rsync。

所以我安装了自由SSHd(登录 shell 设置为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

问题似乎出在路径上。

由于我安装了 mysysgit PATH(但没有 cygwin),因此sh.exe从 mysysgit 调用可执行文件失败。在PATHmysysgit 之前添加 cygwin 时,错误消失。

之后,我有一个新问题

相关内容