当我尝试时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
答案3
255 实际上不是“本机”rsync
返回代码。rsync
从 SSH 中抓取 255 错误代码并返回它。在我看来,目标服务器上的某些东西正在阻止 SSH 或在连接后将其破坏,因此是“管道损坏”。我不同意 @kenorb 的观点,因为如果是超时问题,您可能会看到rsync
退出代码 30 或 35。
答案4
我知道这个问题已经很老了,但也许有人(像我一样)仍然有这个错误。
a)检查ssh服务是否正在运行:
sudo service ssh status
b)使用三重详细命令检查连接:
ssh -vvv <hostname>
c) 也许您使用了错误的 ssh 密钥,或者密钥在某种程度上被损坏了。
藤蔓