NETGEAR ReadyNAS 的 Rsync 在一个特定文件上失败

NETGEAR ReadyNAS 的 Rsync 在一个特定文件上失败

我目前有一台服务器,它每晚使用 Rsync 将其数据备份到 NETGEAR ReadyNAS 设备。过去几个月,它一直运行良好。然而最近,我开始收到以下错误:

rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Connection reset by peer (104)
inflate (token) returned -5
rsync error: error in rsync protocol data stream (code 12) at token.c(604) [receiver=3.0.6]
rsync: connection unexpectedly closed (229743 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=3.0.7]

我设法将其追踪到导致问题的一个特定文件(通过使用 Rsync 仅复制该文件)。该文件本身相当大 - 大约 975Mb。但是,同一目录中还有其他文件,其中一些文件大到 3Gb,这些文件备份得很好。

我正在使用以下 Rsync 命令:

 rsync -avz --password-file=/root/rsync.secret <sourcedir> username@readynas::backup

与 Ubuntu Linux 主机的 Rsync 似乎可以工作,因此看起来服务器上的 rsync 客户端没有问题。

我在 Google 上搜索了一番,但一无所获。很多人似乎都说调整 Rsync 服务器端的超时时间可以解决类似的问题,但如果这是我的问题,我不明白为什么它对较大的文件有效。

有人对如何解决这个问题有什么建议吗?

答案1

我以前在机器之间进行压缩 rsync 时见过这种情况(很少发生)。在所有我见过的情形中,数据本身已经压缩过(例如视频文件或 zip)。大多数文件都通过了。但有一次,某个特定文件出现了这个问题。

尝试不进行压缩。(rsync 上没有 -z 标志。)传输的压缩数据可能会出现一些问题,在极少数情况下,会导致另一端出现故障。

此外:不压缩实际上可能会更快,这取决于网络速度以及源和目标上可用的 CPU/RAM 容量。大多数(低端/中端)NAS 盒实际上没有这种能力。

相关内容