rsync 在 io.c(837) 处创建错误消息无法解释的错误(代码 255)

rsync 在 io.c(837) 处创建错误消息无法解释的错误(代码 255)

当我尝试时rsync -qaPH source/ 192.168.1.21:/var/backups我得到

rsync: [sender] write error: Broken pipe (32)
rsync error: unexplained error (code 255) at io.c(837) [sender=3.1.0]

我的命令有什么问题?

答案1

要进行调查,请向 rsync 命令添加一个或多个-v选项。此外,尝试使用普通的 ssh:

ssh -v 192.168.1.21 /bin/true

查明是 rsync 还是底层 ssh 连接导致了问题。

答案2

管道破裂错误很可能意味着您已达到超时。例如,远程 rsync 命令已开始计算文件差异,但未及时回复客户端。

如果这种情况经常发生,请将这些设置添加到本地~/.ssh/config

Host *
  ServerAliveInterval 30
  ServerAliveCountMax 6

并在远程服务器上(如果您有访问权限),在您的中进行以下设置/etc/ssh/sshd_config

ClientAliveInterval 30
ClientAliveCountMax 6

看:选项ServerAliveIntervalClientAliveInterval含义是什么?

答案3

255 实际上不是“本机”rsync返回代码。rsync从 SSH 中抓取 255 错误代码并返回它。在我看来,目标服务器上的某些东西正在阻止 SSH 或在连接后将其破坏,因此是“管道损坏”。我不同意 @kenorb 的观点,因为如果是超时问题,您可能会看到rsync退出代码 30 或 35。

答案4

我知道这个问题已经很老了,但也许有人(像我一样)仍然有这个错误。

a)检查ssh服务是否正在运行:

sudo service ssh status

b)使用三重详细命令检查连接:

ssh -vvv <hostname>

c) 也许您使用了错误的 ssh 密钥,或者密钥在某种程度上被损坏了。

藤蔓

相关内容