当我尝试在 64 位 Windows 和 64 位 Linux 之间传输文件时,cygwin rsync 出现错误。两台机器都安装了 rsync 3.0.7。我正在使用 ssh 运行 rsync(不涉及守护进程)。我看到与远程框的连接已建立,但在身份验证之后和文件传输之前 rsync 死机了。
什么可能导致这个问题?
C:\>rsync user@host:~/file newfile
Password:
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=
3.0.7]
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at /home/lapo/packagi
ng/rsync-3.0.6-1/src/rsync-3.0.6/io.c(600) [receiver=3.0.6]
答案1
带error 12
表示rsync
与远程方的连接已断开。原因取决于环境。
如果您正在将 rsync 作为守护进程运行,请查看其日志文件以获取线索。远程系统的磁盘上是否有足够的可用空间?也许rsync
使用-v
参数运行会提供一些有用的信息?
答案2
事实证明问题出在 Windows git 安装 (mysysgit) 上。Windows 上的 Git 自带了 ssh.exe,其路径在 cygwin 路径之前,因此 rsync 默认为 git 的 ssh。解决方案只是在 env PATH 中交换 git bin 和 cygwin 的 bin 目录。