是否可以通过命令行对 scp/sftp/rsync/etc 传输进行速率限制?即通过单个命令手动设置 QoS?

是否可以通过命令行对 scp/sftp/rsync/etc 传输进行速率限制?即通过单个命令手动设置 QoS?

scp具体来说,我正在寻找对sftp会话(或其他任意网络调用)进行速率限制的方法在通话本身中

例如,假设我想将 100MB 复制到一台服务器,将 1GB 复制到另一台服务器。我希望能够同时运行这两个服务器,但保持“正常”计算机使用的 QoS - 有点类似于您对 bittorrent 进行速率限制的方式。

有没有一种方法可以在不接触网络硬件的情况下做到这一点?

我设想的是类似这样的事情:

magic-qos-tool 'scp file user@host:/path/to/file'

或者..

scp -rate 40kbps file user@host:/path/to/file

答案1

是的,有一个应用程序与你的“magic-qos-tool”完全一样,叫做“涓涓细流“。

EXAMPLES
     trickle -u 10 -d 20 ncftp

     Launch ncftp(1) limiting its upload capacity to 10 KB/s, and download ca-
     pacity at 20 KB/s.

答案2

scp 有-l, rsync 也有--bwlimit

答案3

Rsync 使这个过程变得简单,它有一个选项可以做到这一点:--bwlimit=KBPS

答案4

sftp具有节流标志,从 Debian 7 和 Ubuntu 12.04 开始:

-l limit

    限制使用的带宽,以 Kbit/s 为单位。

(当然是小写的L。)

来源:stfp(1)

相关内容