我尝试将一个大文件(1GB+)从一台机器传输到另一台机器,但我必须通过网关隧道中间。我可以顺利传输小文件。但是,对于大文件,传输中途会停滞。
读完关于 SCP 传输停滞的博客文章,我尝试使用-l 8192
,甚至尝试将其降低到-l 2000
,但这似乎只是让它更快地停滞:
scp -l 2000 -v -P 2222 username@localhost:/path/to/file.gz .
从 scp 命令的详细输出(-v
)来看,似乎-l
没有被传递……
debug1: Sending command: scp -v -f -- /path/to/file.gz
还有其他想法吗?
答案1
一个不太好的解决方案是使用rsync
而不是scp
。rsync
程序可以可靠地恢复中断的传输。如果它挂起,只需使用 退出CTRL-C
并重复该命令。
答案2
我认为您应该rsync
在screen
会话中使用。可以使用选项重新运行中断--ignore-existing
。
答案3
我认为 rsync 不是一个丑陋的解决方案。一定要使用 -c 标志 rsync,这样如果连接中断,它可以从中断的地方继续,还可以包括 --verbose 以在传输过程中查看更多信息。