我有两个远程主机,我需要将文件从其中一个传输到另一个。它们之间没有路由,所以我必须通过本地机器进行传输,本地机器会路由到这两个主机。
我可以使用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"