É possível limitar a taxa de transferência scp / sftp / rsync / etc da linha de comando? ou seja, QoS manual em um único comando?

10

Especificamente, estou procurando limitar uma taxa scpou uma sftpsessão (ou outra chamada de rede arbitrária) na própria chamada .

Por exemplo, digamos que eu queira copiar 100 MB para um servidor e 1 GB para outro. Gostaria de poder executar os dois ao mesmo tempo, mas manter uma QoS para o uso "normal" do computador - um pouco semelhante à forma como você pode limitar a taxa de bits.

Existe uma maneira de fazer isso sem tocar no hardware da rede?

Estou imaginando algo parecido com:

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

Ou..

scp -rate 40kbps file user@host:/path/to/file
Warren
fonte

Respostas:

12

Sim, existe um aplicativo que funciona exatamente como sua 'magic-qos-tool', chamada " trickle ".

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
fonte
1
graças, @davr - uma ferramenta invólucro vs aprender todas as opções para cada um é uma grande melhoria :)
Warren
16

scp possui -le rsync possui --bwlimit.

Ignacio Vazquez-Abrams
fonte
essa não era uma opção na manpágina que verifiquei anteriormente ... parece que depende da plataforma, talvez?
Warren
Bem possível. Eu tenho o OpenSSH 5.3p1 aqui.
Ignacio Vazquez-Abrams
XenServer 6 tem scp com opção -l
Brian Boatright
O sinalizador -l no scp não funciona no Solaris 11. Existe alguma outra opção ou alternativa?
Alquimista
7

O Rsync facilita isso para você, ele tem uma opção para fazer isso: --bwlimit=KBPS

kbyrd
fonte
2

sftp tem uma bandeira do acelerador, a partir do Debian 7 e Ubuntu 12.04 nessas distribuições:

-l limit

    Limita a largura de banda usada, especificada em Kbit / s.

(Claro que é uma letra minúscula L.)

Fonte: stfp(1)

Thom Luxford
fonte