Existe um filtro que eu poderia usar para limitar a taxa de um tubo no Linux? Se isso existir, vamos chamá-lo de limite de taxa, quero poder digitar em um terminal algo como
cat /dev/urandom | rate-limit 3 -k | foo
para enviar um fluxo de bytes aleatórios para a entrada padrão do foo a uma taxa (menor que) 3 kbytes / s.
rate-limit 3k < /dev/urandom | foo
.Respostas:
O Pipe Viewer possui esse recurso.
fonte
-q
... por exemplo:command 2>&1 | pv -q -L 3k
Eu diria que Juliano tem a resposta certa se você tiver essa ferramenta, mas também sugeriria que este é um pequeno exercício de estilo K&R: basta escrever uma versão especializada de gato que lê um caractere de cada vez
stdin
, produz cada umstdout
e depoisusleep
s antes de prosseguir. Certifique-se de tampar a saída padrão , ou isso ocorrerá de maneira instável.Eu chamei isso
slowcat.c
:Compile e tente com
fonte
acelerador parece projetado especificamente para isso. por exemplo
fonte
./configure && make
.Aqui está uma solução totalmente concha que não perderá informações (consulte a idéia do cabeçalho -1 de Mike S):
fonte
Rápido e sujo, com shell o tempo todo (eu tenho o CentOS e o pv não vem com ele por padrão):
... sujo porque, apesar de ser limitado, está cheio a um ritmo que não posso lhe dizer :-). Mas é útil quando você só precisa enviar dados de um lugar para outro (eu estava fazendo alguns testes socat) e você não quer encher a tela com lixo.
fonte