我有两台机器A
,B
位于同一个低带宽网络上。A
想要B
尽快复制文件,但可能会在几秒钟后超时t
。如果传输过程超时,最多可以重新启动 3 次。平均文件大小约为 50MB,差异相当大(有些文件接近 1GB)。
我目前正在使用scp
压缩-C
选项,即使t=300
我超时了。该过程最多会重试 3 次,但通常每次都会超时,因为scp
每次都必须重新开始。不幸的是,由于某些应用程序逻辑,增加过去t=300
不是一个选择。
我正在考虑使用flagrsync
来代替-P
从手册页来看,这似乎会导致rsync
将先前尝试的进度保留在临时文件中,并将其增量传输算法应用于上次的部分结果。在这种情况下你会推荐rsync
普通的scp
还是有更快的替代方案?我知道默认情况下rsync
使用它scp
来复制文件,但我不认为它scp
具有部分进度功能(我希望这一点是错的)。
答案1
首先要做的事情是:rsync
不用于scp
复制文件。 (不过,它可以用作ssh
交通工具;也许这就是让您感到困惑的地方?)
如果你有这样的命令:
scp -pr /source/path/* remotehost:/destination/
您可以将其一对一替换为:
rsync -a /source/path/* remotehost:/destination/
在这个特定的实例中,我会像这样优化*
源路径,并包含标志--partial --progress --verbose
以提高可重新启动性(并查看发生了什么)。请注意,我保留/
了源代码;这很重要rsync
:
rsync -avP /source/path/ remotehost:/destination/
您可以通过包含该标志来了解如果不这样做会发生什么--dry-run
。