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

Ale*_*lex 18 ssh rsync

当我尝试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]
Run Code Online (Sandbox Code Playgroud)

我的命令有什么问题?

Arj*_*jen 9

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

ssh -v 192.168.1.21 /bin/true
Run Code Online (Sandbox Code Playgroud)

找出是 rsync 还是导致问题的底层 ssh 连接。


ken*_*orb 7

管道损坏错误很可能意味着您已超时。例如远程rsync命令开始计算文件差异,但没有按时回复客户端。

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

Host *
  ServerAliveInterval 30
  ServerAliveCountMax 6
Run Code Online (Sandbox Code Playgroud)

并在远程服务器上(如果您有访问权限),在您的/etc/ssh/sshd_config

ClientAliveInterval 30
ClientAliveCountMax 6
Run Code Online (Sandbox Code Playgroud)

请参阅:选项ServerAliveIntervalClientAliveInterval含义是什么?


med*_*y56 6

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