rsync 错误:io.c(600) 处的 rsync 协议数据流 (代码 12) 错误

rsync 错误:io.c(600) 处的 rsync 协议数据流 (代码 12) 错误

最近我无法通过 ssh 进行 rsync。每次我都会收到相同的错误

bash: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]

我在跑步

sudo rsync -av /var/www/html/somedir/ [email protected]:Users/myuser/Desktop/ec2backup

请注意,为了本文的目的,用户名、IP 和目录都已更改。

过去我曾运行过与使用 bash_history 验证的完全相同的命令。

我已尝试过:

  1. 从另一台服务器运行类似的命令,导致出现相同的错误消息。
  2. 在本地测试了 rsync(本地目录到本地目录),运行良好。

唯一改变的是,我最近安装了 Virtualbox 和 Vagrant。我可能弄乱了本地机器上的身份验证/端口/等等吗?

任何帮助是极大的赞赏。

答案1

999.999.99.9 上未安装 rsync

答案2

我的问题是我将 cwrsync_6.2.1_x64 与 SSH_for_Windows_7.7p1、LibreSSL 2.6.5 结合使用,后者预装在 win10 2004 build 19041.685 中。

在 rsync 命令中,您需要指向该特定 rsync 版本附带的 ssh.exe。例如:

rsync -avHz -e "path_to\cwrsync_6.2.1_x64_free\bin\ssh.exe" --partial ...

答案3

当目标目录不存在时,我收到此错误。对于源数据文件:/a/b/c/d/data,rsync -av -e ssh /a/b/c/d/hostname:/a/b/c/d 需要目标目录:hostname:/a/b/c 预先存在。

在作为最后的手段阅读手册页时,我发现这是预期的行为。

答案4

使用 cygwin,我执行了“which rynsc”,结果是 cygwin 安装程序提供的 rsync。我之前已通过 Cygwin 安装程序安装了 rsync。但是,当我从 Cygwin 执行“which ssh”时,它指向 Windows 路径的 ssh。因此,我退出 Cygwin,执行 cygwin 安装程序并从 cygwin 安装 ssh。完成此操作后,我再次执行了相同的两个命令(which rsync 和 which ssh),两个二进制文件都指向 cygwin 二进制文件。然后,当我从 cygwin 执行 rsync 时,它完全没有任何问题。

相关内容