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

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

在 VOIP 应用程序中,我rsync每天从 Linux 服务器获取最多 3000 个客户端音频文件,服务器位于数据中心(10Mbps 输入/输出),服务器作为运行 FreeSWITCH 的 VOIP sip 服务器工作(应确保低 ping 延迟。)

因此,我希望拥有 rsync 的服务器端控制权,它可以控制:

  1. 限制总出站带宽。
  2. 限制总连接数。(当连接数达到最大时拒绝客户端,并让其在特定时间段后重试。)
  3. 可选:列出/终止单个连接。

通常我会使用 ssh + rsync + pem_keys 和一些额外的选项,但上述要求无法通过简单的命令行实现。有人能给我指点一下吗?或者展示一些脚本/工具?我可能还会整合它们并在 github 上发布。谢谢!

答案1

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

因此,我可以这样做来实现你的愿望:

  1. 用于tc流量整形 -开放VZ有一篇相当不错的文章。
  2. 使用iptables-网络城市来解决这个问题。您将reject超过阈值的新连接,因此您需要包装rsync客户端以确保它在快速失败时重试。
  3. 实现此目的的最简单方法可能是将所有文件放在一个组下,并将一组用户放在该组下。然后为每个客户端分配自己的用户进行连接。从这里开始,杀死连接的客户端的 PID 应该相对简单(我相信还有其他方法可以唯一地识别用户,这只是一个建议。)

相关内容