¿Es posible limitar la velocidad de una transferencia scp / sftp / rsync / etc desde la línea de comandos? es decir, QoS manual en un solo comando?

10

En concreto, estoy buscando a una velocidad límite scpo sftpperíodo de sesiones (u otra llamada de red arbitraria) en la propia convocatoria .

Por ejemplo, supongamos que quiero copiar 100 MB en un servidor y 1 GB en otro. Me gustaría poder ejecutar ambos al mismo tiempo, pero mantener una QoS para el uso "normal" de la computadora, algo similar a cómo se puede limitar el bittorrent.

¿Hay alguna manera de hacer esto sin tocar el hardware de red?

Estoy imaginando algo parecido a:

magic-qos-tool 'scp file user@host:/path/to/file'

O..

scp -rate 40kbps file user@host:/path/to/file
madriguera
fuente

Respuestas:

12

Sí, hay una aplicación que funciona exactamente como su 'magic-qos-tool', llamada " goteo ".

EXAMPLES
     trickle -u 10 -d 20 ncftp

     Launch ncftp(1) limiting its upload capacity to 10 KB/s, and download ca-
     pacity at 20 KB/s.
davr
fuente
1
gracias, @davr: una herramienta de envoltura versus aprender todas las opciones para cada una es una gran mejora :)
warren
16

scp tiene -ly rsync tiene --bwlimit.

Ignacio Vazquez-Abrams
fuente
esa no era una opción en la manpágina que revisé anteriormente ... ¿parece que depende de la plataforma, tal vez?
Warren
Muy posiblemente. Tengo OpenSSH 5.3p1 aquí.
Ignacio Vazquez-Abrams
XenServer 6 tiene scp con la opción -l
Brian Boatright
El indicador -l en scp no funciona en Solaris 11. ¿Hay alguna otra opción o alternativa?
Alquimista
7

Rsync te lo pone fácil, tiene una opción para hacerlo: --bwlimit=KBPS

kbyrd
fuente
2

sftp tiene una bandera del acelerador, a partir de Debian 7 y Ubuntu 12.04 en esas distribuciones:

-l limit

    Limita el ancho de banda utilizado, especificado en Kbit / s.

(Por supuesto, es una minúscula L).

Fuente: stfp(1)

Thom Luxford
fuente