rsync服务器端限制带宽/连接

在一个VOIP应用程序中,我每天从那里的linux服务器获得3000个客户端的rsyncaudio文件,服务器放置在一个数据中心(10Mbpsinput/输出),服务器作为运行FreeSWITCH的VOIP sip服务器应该保证。)

因此,我想有服务器端控制的rsync控制:

  1. 限制总出站带宽。
  2. 限制连接总数。 (在最大连接数时拒绝客户端,并在特定时间段后重试。)
  3. 可选:列出/杀死个人连接。

通常情况下,我会使用ssh + rsync + pem_keys和其他一些选项,但是以上的要求并不适用于简单的命令行。 任何人都可以指出一些方向。 或者显示一些脚本/工具? 我也可能将它们集成并在github上发布。 谢谢!

如果我处于这种情况,我将继续使用库存工具,纯粹是因为您可以始终保持最新,并获得所有最新的错误修复/function,而无需使用自己的代码修补它们。

因此,我会用这个来达到你想要的:

  1. 使用tc进行stream量整形 – OpenVZ上有相当不错的文章。
  2. 使用iptables – Cyber​​citi来拯救这个。 你会reject超过阈值的新连接,所以你需要包装rsync客户端,以确保它重试,如果它快速失败。
  3. 可能最简单的方法是将所有文件放在一个组中,并将一组用户作为该组的一部分。 然后给每个客户自己的用户连接。 从这里开始,杀掉连接的客户端的PID应该是相对简单的(我确信有其他方法可以唯一识别用户,这只是一个build议)。