通过本地带宽限制 scp 远程到远程

通过本地带宽限制 scp 远程到远程

我有两个远程主机,我需要将文件从其中一个传输到另一个。它们之间没有路由,所以我必须通过本地机器进行传输,本地机器会路由到这两个主机。

我可以使用scp -i /path/to/key -3 remote1:/path/to/file remote2:/path/to/file,一切正常,只是它占用了所有可用带宽。scp 有-l限制带宽的选项,但它只在我从远程传输到本地或从本地传输到远程时才有效。它不适用于选项-3。我不知道这是错误还是期望的行为,手册页没有对此进行任何说明。

有什么想法可以让带宽限制控制变得简单和顺畅吗?Rsync 不可用。

答案1

ssh remote1 "cat /path/file" | pv --rate-limit 1M | ssh remote2 "cat > /path/file"

可以使用类似的方法一次传输多个文件:

ssh remote1 "cd /path && tar -cz file1 file2" | pv -L 1M | ssh remote2 "cd /path && tar -xz"

相关内容