Czy można ograniczyć szybkość transferu scp / sftp / rsync / etc z wiersza poleceń? tj. manualna QoS na jednym poleceniu

10

W szczególności zamierzam ograniczyć szybkość sesji scplub sftpsesji (lub innego dowolnego połączenia sieciowego) w samym połączeniu .

Załóżmy na przykład, że chcę skopiować 100 MB na jeden serwer, a 1 GB na inny. Chciałbym móc uruchomić oba z nich jednocześnie, ale utrzymywać QoS dla „normalnego” użytkowania komputera - nieco podobny do tego, w jaki sposób można ograniczyć szybkość bittorrenta.

Czy można to zrobić bez dotykania sprzętu sieciowego?

Przewiduję coś podobnego do:

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

Lub..

scp -rate 40kbps file user@host:/path/to/file
królikarnia
źródło

Odpowiedzi:

12

Tak, istnieje aplikacja, która działa dokładnie tak samo jak „magiczne narzędzie qos”, zwana „ strumieniem ”.

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
źródło
1
dzięki, @davr - jedno narzędzie do pakowania w porównaniu do uczenia się wszystkich opcji dla każdego z nich jest wielkim ulepszeniem :)
warren
16

scp ma -l, a rsync ma --bwlimit.

Ignacio Vazquez-Abrams
źródło
to nie była opcja na manstronie, którą sprawdziłem wcześniej ... wygląda na to, że zależy to od platformy, może?
warren
Całkiem możliwe. Mam tutaj OpenSSH 5.3p1.
Ignacio Vazquez-Abrams
XenServer 6 ma scp z opcją -l
Brian Boatright
Flaga -l w scp nie działa w systemie Solaris 11. Czy jest jakaś inna opcja lub alternatywa?
Alchemist
7

Rsync sprawia, że ​​jest to dla ciebie łatwe, ma opcję wykonania tego: --bwlimit=KBPS

kbyrd
źródło
2

sftp ma flagę przepustnicy, od wersji Debian 7 i Ubuntu 12.04 w tych dystrybucjach:

-l limit

    Ogranicza używaną przepustowość, określoną w Kbit / s.

(Oczywiście, że to mała litera L.)

stfp(1)

Thom Luxford
źródło