¿Hay un filtro que podría usar para limitar la velocidad de una tubería en Linux? Si esto existe, vamos a llamarlo límite de velocidad, quiero poder escribir en un terminal algo así como
cat /dev/urandom | rate-limit 3 -k | foo
para enviar una secuencia de bytes aleatorios a la entrada estándar de foo a una velocidad (inferior a) 3 kbytes / s.

rate-limit 3k < /dev/urandom | foo.Respuestas:
Pipe Viewer tiene esta característica.
fuente
-q... por ejemplo:command 2>&1 | pv -q -L 3kYo diría que Juliano tiene la respuesta correcta si tiene esa herramienta, pero también sugeriría que este es un pequeño ejercicio de estilo K&R: solo escriba una versión especializada de cat que lea un carácter a la vez
stdin, salidas cada uno haciastdouty luegousleeps antes de continuar. Asegúrese de liberar el búfer de la salida estándar , o esto se ejecutará bastante bruscamente.Llamé a esto
slowcat.c:Compílalo y prueba con
fuente
El acelerador parece diseñado específicamente para esto. p.ej
fuente
./configure && make.Aquí hay una solución integral que no perderá información (vea la idea de cabeza -1 de Mike S):
fuente
Rápido y sucio, todo shell todo el tiempo (tengo CentOS y pv no viene con él por defecto):
... sucio porque, aunque tiene una velocidad limitada, tiene una explosión que no puedo decirte :-). Pero es útil cuando solo necesita enviar datos de un lugar a otro (estaba haciendo algunas pruebas de socat) y no desea inundar su pantalla con basura.
fuente