对于连接重置,rsync 是否比 scp 更强大?

对于连接重置,rsync 是否比 scp 更强大?

在大型企业防火墙密布的网络上,我们传统上会将scp一些全新的文件从一台机器复制到另一台机器,作为日志文件轮换和分析程序的一部分。

然而,最近发现它scp似乎随机失败,并出现Connection reset by peer错误消息,并且我们的例程被中断。

rsync切换到 是一个好主意吗scp,或者有没有办法让 scp 在尝试复制文件时更加坚持一点?

答案1

“对端重置连接”表示 TCP 流的远端(不是记录错误的一端)意外关闭了 TCP 流。例如,如果远端的程序崩溃或被终止,就会发生这种情况。某些网络设备(如状态防火墙或 NAT 设备)干扰 TCP 流也可能导致该错误。

在最好的情况下,导致错误的原因可能是特定于scp程序的。Rsync不使用scp,因此可能不受影响。或者,问题可能是两台服务器之间的 ssh 连接所致,甚至可能是两台服务器之间的任何 TCP 流所致。您可能正在通过 ssh 运行 rsync,因此它可能会遇到与 scp 相同的问题。

其主要功能之一rsync是,当目标文件已经存在但内容与源文件不同时,rsync 无需重新传输整个文件——它只需传输额外的数据以使目标与源文件匹配。当您运行 rsync 时,如果在完成之前失败,您可以重新启动 rsync,它会从上次中断的地方继续,而不是重新开始。如果您发现 rsync 像 scp 一样崩溃,那么这个 rsync 功能将非常有用。

Rsync 实际上不会自行尝试重新连接,但您可以继续运行 rsync,直到它报告成功。例如,此bashshell 命令将执行此操作:

until rsync ...
do
    echo Retrying rsync
done

相关内容