我有一个由 cron 运行的脚本,该脚本将 rsync 的各个文件夹同步到不同城市的服务器上,以将文件发布到网站。如果重要的话,源服务器位于公司防火墙内,而目标服务器位于公司防火墙外。
该脚本使用锁定系统来防止其自身的多个实例同时运行。
rsync 偶尔(每天最多 1-3 次)失败并出现以下错误:
rsync: read error: Connection reset by peer (104) rsync error: error in rsync protocol data stream (code 12) at io.c(604) [sender=2.6.9]
我发现一些建议建议我指定超时值,因此我将标志 --timeout=10 添加到命令中。结果是一个不同的错误:
io timeout after 10 seconds -- exiting
rsync error: timeout in data send/receive (code 30) at io.c(165) [sender=2.6.9]
接收服务器的负载可能相当重,因此这可能是一个因素。
有没有人有任何建议来避免这些错误?