¿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 3k
Yo 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 haciastdout
y luegousleep
s 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