GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo limitar la velocidad de una tubería en Linux?

Pipe Viewer tiene esta función.

cat /dev/urandom | pv -L 3k | foo

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:simplemente escriba una versión especializada de cat que lea un carácter a la vez desde stdin , envía cada uno a stdout y luego usleep s antes de continuar. Asegúrese de quitar el búfer de la salida estándar, o esto se ejecutará de forma bastante brusca.

Llamé a esto slowcat.c :

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char**argv){
  int c;
  useconds_t stime=10000; // defaults to 100 Hz

  if (argc>1) { // Argument is interperted as Hz
    stime=1000000/atoi(argv[1]);
  }

  setvbuf(stdout,NULL,_IONBF,0);

  while ((c=fgetc(stdin)) != EOF){
    fputc(c,stdout);
    usleep(stime);
  }

  return 0;
}

Compílalo y prueba con

$ ./slowcat 10 < slowcat.c

el acelerador parece diseñado específicamente para esto. por ejemplo

cat /dev/urandom | throttle -k 3 | foo

Linux
  1. Cómo usar FTP en Linux para transferir archivos

  2. Cómo usar el comando tar en Linux

  3. Cómo usar la redirección de comandos en Linux

  4. Cómo utilizar eficazmente las páginas de manual en Linux

  5. ¿Cómo canalizar/dev/urandom a la salida de sonido de Linux?

Cómo instalar Linux en 3 pasos

Cómo mover un archivo en Linux

Cómo particionar un disco en Linux

Cómo encontrar archivos en Linux

¿Cómo convertir la clave .ppk en clave OpenSSH en Linux?

¿Cómo instalar Office 2010 bajo Wine en Linux Ubuntu?