我正在尝试使用 SCP 将大量数据从 Windows 传输到 Linux。
scp GEOS* username@ip:/path/to/destination
可以。但是速度很慢,两小时后连接就会重置。
files.tar 50% 9109MB 1.1MB/s 2:12:35 ETAConnection reset by IP port 22
files.tar 50% 9109MB 1.0MB/s 2:27:19 ETAlost connection
我想知道是否还有其他更稳定的方法来实现它。
另外,我听说 rsync 可以继续中断的传输。我厌倦了
rsync -ht --progress --stats GEOS* /path/to/destination
重启电脑后,我又尝试了一次。好像我又从零开始传输文件。
我想知道如何继续中断的传输。
谢谢,Lixu
答案1
弄清楚您实际在做什么很棘手,因为您引用的示例命令都无效 - 每个命令要么失败,要么无法执行您所说的操作。
我猜你的意思是这些:
scp GEOS* username@ip:/path/to/destination
rsync -ht --progress --stats GEOS* username@ip:/path/to/destination
如果不正确,请编辑您的问题以显示您执行的命令实际上尝试过,看看是否可以相应地更新我的答案。
该rsync
命令以两种不同的方式工作,具体取决于调用方式。
Rsync 到两个看起来像是本地的路径。
rsync /path/to/source/GEOS* /path/to/destination/
由于两个原因,此版本的
rsync
命令无法重新启动。- 该文件没有传输元数据,因此
rsync
无法判断该文件是否是快捷方式的可能候选(使用rsync -a
而不是仅仅rsync
为了解决这个问题)。 - 您使用的源路径和目标路径“看起来”像是本地路径。因此
rsync
无法以客户端/服务器方式运行,也不会尝试跳过已传输的文件部分。
- 该文件没有传输元数据,因此
本地和远程主机之间的 Rsync。
rsync -ht --progress --stats GEOS* username@ip:/path/to/destination
此版本的
rsync
命令以客户端/服务器模式运行,并且由于它包含文件时间戳(-t
),因此在发生网络故障时将重新启动。注意此命令(本地/远程)与#1 无法有效重启的第二个原因(本地/本地)之间的区别。
我不建议使用--append
或,--append-verify
除非你可以绝对和完全保证源文件自第一次rsync
尝试以来没有发生任何变化。即便如此,我通常也不会推荐它,因为它实际上并没有节省太多时间,而且在误用时确实大大增加了错误复制的机会。如果对文件是否被更改有任何疑问,使用--append
或其变体之一将保证文件被错误复制,无法检测到。