Se eu estivesse na sua situação, continuaria usando ferramentas de estoque apenas porque você sempre pode mantê-las atualizadas e obter as mais recentes correções de erros sem precisar corrigi-las com seu próprio código.
Como resultado, eu alcançaria o que você queria com isso:
- Use
tc
para a modelagem de tráfego - O OpenVZ tem um artigo bastante interessante sobre isso. - Use
iptables
- Cyberciti para resgatá-lo. Você usariareject
novas conexões acima do limite, portanto, seria necessário agruparrsync
do lado do cliente para garantir que ele seja repetido caso ocorra uma falha rápida. - Provavelmente, a maneira mais fácil de conseguir isso é ter todos os seus arquivos em um único grupo e um grupo de usuários faz parte desse grupo. Em seguida, dê a cada cliente seu próprio usuário para se conectar. A partir daqui, deve ser relativamente simples eliminar os PIDs dos clientes conectados (tenho certeza de que há outras maneiras de identificar os usuários de maneira única, mas isso é apenas uma sugestão).