Microsoft 后台智能传输服务 (BITS) 的实现是否可用于 Linux 系统?
我正在考虑通过互联网将大文件传输到远程 Linux 服务器的选项,我不希望它耗尽我所有(有限的!)上行带宽。
我过去曾在 Windows 系统上成功使用过 BITS,但这次我需要与 Linux 服务器之间进行传输。
如果有什么区别的话,两个系统都可能运行基于 Ubuntu 的系统,尽管理想情况下我想要一个独立于发行版的解决方案。
答案1
首先,简单的方法:rsync
有一个--bwlimit
参数。这是一个恒定的速率,但您可以使用它来轻松地降低它。
现在,如果你想要自适应速率,有Linux流量控制框架,这实际上相当复杂。我知道有几个参考资料:
就我个人而言,当我必须进行设置时,我使用tcng简化任务。这是一个例子:
dev office {
egress {
class ( <$ssh> )
if ip_tos_delay == 1 && tcp_sport == PORT_SSH ;
class ( <$kyon> )
if ip_dst == 172.16.1.62; // monitoring host
class ( <$fast> )
if ip_tos_delay == 1;
class ( <$default> )
if 1;
htb() {
class ( rate 1440kbps, ceil 1440kbps ) {
$ssh = class ( rate 720kbps, ceil 1440kbps ) { sfq; };
$kyon = class ( rate 360kbps, ceil 1440kbps ) { sfq; };
$fast = class ( rate 180kbps, ceil 1440kbps ) { sfq; };
$default = class ( rate 180kbps, ceil 1440kbps ) { sfq; };
}
}
}
}
在该示例中,通过办公室接口发送的流量被分为几个类别:ssh、kyon、fast 和 default。链路(使用时为 T1)的上限为 1440kbps(这必须略低于实际链路速率,以便缓冲发生在 Linux 机器上,而不是路由器上)。可以看到ssh被分配了720kbps,kyon 360等。都可以突发到全速率(ceil)。当存在争用时,“rate”充当比率,因此 ssh 将被给予 1/2、kyon 1/4 等。“sfq”表示如何处理多个 ssh 会话; sfq 是循环赛的一种形式。