rsync错误无法解释的错误(代码255)在io.c

我正在使用脚本在sudo crontab执行rsync。 该脚本执行双向rsync(从serverA到serverB并反向)。 重启两台服务器之后,rsync在sudo crontab不起作用。 我也设置了一个新的cronjob,它失败了,错误是:

 rsync error: unexplained error (code 255) at io.c(600) [sender=3.0.6] rsync: connection unexpectedly closed (0 bytes received so far) [receiver] 

但是,从terminal运行时,rync脚本按预期工作,没有问题。 请帮忙。

有一点难以回答,因为几乎完全没有相关的信息,但作为一般规则,如果一个命令是从提示符而不是从一个cron作业,那是因为你需要指定命令的完整path。 Cron作业没有一个正常的用户环境,这意味着他们没有普通用户的PATH。

连接被拒绝时,这似乎发生:

ssh:连接到主机端口2222:连接被拒绝

其次是rsync错误:

rsync:连接意外closures(到目前为止收到的0字节)[接收器] rsync错误:/SourceCache/rsync/rsync-45/rsync/io.c中的原因不明的错误(代码255)(453)[receiver = 2.6.9]


可能的原因:

  • 在我的情况下,我遇到了防火墙问题。 打了一个洞。
  • 错误的密码(不太可能解决您的问题,但会导致相同的错误)

rsync连接意外closures的原因之一是超时问题,特别是当需要一段时间来计算文件校验和以检查远程主机上的差异时。

为了避免这个问题,您需要将这些设置添加到~/.ssh/config/etc/ssh/ssh_config

 Host * ServerAliveInterval 30 ServerAliveCountMax 6 

和远程服务器(在/etc/ssh/sshd_config )可选地类似,例如,

 ClientAliveInterval 30 ClientAliveCountMax 6 

请参阅: ServerAliveIntervalClientAliveInterval的选项是什么意思?