![rsync 错误:rsync 协议数据流错误(代码 12)](https://linux22.com/image/775779/rsync%20%E9%94%99%E8%AF%AF%EF%BC%9Arsync%20%E5%8D%8F%E8%AE%AE%E6%95%B0%E6%8D%AE%E6%B5%81%E9%94%99%E8%AF%AF%EF%BC%88%E4%BB%A3%E7%A0%81%2012%EF%BC%89.png)
伙计们,这是我尝试将文件发送到服务器时遇到的错误。我不确定出了什么问题。有人能帮我解决这个问题吗?提前谢谢。
$ rsync -avz ./ ssc:/webapp/
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) [Receiver=3.1.3]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(228) [sender=3.2.4dev]
答案1
https://youtrack.jetbrains.com/issue/IDEA-270793
我添加了“-e /usr/bin/ssh”并解决了该问题。
rsync -e /usr/bin/ssh -vP /c/projects/cpp/RecFileExtractBatch/example_recfile_extract_command_file.xml thtran@p811:/home/thtran/mnt_win_pdatx_linux
答案2
我在 Windows 11 上使用 cygwin rsync。我仍然不能 100% 确定为什么这最近才开始失败,但我发现使用带有 cygwin rsync 的 Windows OpenSSH 导致了错误。
我最终为 cygwin 安装了 OpenSSH,并将C:\cygwin\bin
其移至C:\WINDOWS\System32\OpenSSH\
环境变量中的路径中。这为我解决了问题。
答案3
GentlemanJohn 的回答对我非常有帮助。我采纳了他的建议,但我改用了/user/bin/ssh
修改路径。例如:
$ rsync -avz -e "/bin/ssh -i .ssh/id_rsa" --progress [email protected]:/ads/qsmrp/ qsmrp
(qsmrp 目录上的尾部斜杠表示仅复制其内容。)
Windows 版本的 openssh 阻止 rsync 工作(传输了 0 字节)。
答案4
在“设置”>“应用程序”>“可选功能”中删除 OpenSSH-Cliente,安装 Git 并添加C:\Program Files\Git\usr\bin
到 Windows PATH。并确保 rsync 和 ssh 具有相同的路径,使用“where ssh”和“where rsync”来检查。