Можно ли ограничить скорость передачи scp / sftp / rsync / etc из командной строки? то есть ручное QoS по одной команде?


10

В частности, я хочу ограничить скорость scpили sftpсеанс (или другой произвольный сетевой вызов) в самом вызове .

Например, допустим, я хочу скопировать 100 МБ на один сервер и 1 ГБ на другой. Я хотел бы иметь возможность запускать оба из них одновременно, но поддерживать QoS для «нормального» использования компьютера - что-то вроде того, как вы можете ограничить скорость bittorrent.

Есть ли способ сделать это, не касаясь сетевого оборудования?

Я предполагаю что-то похожее на:

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

Или..

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

Ответы:


12

Да, есть приложение, которое работает точно так же, как ваш «magic-qos-tool», называемое « струйка ».

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.

1
спасибо, @davr - один инструмент-обертка против изучения всех опций - большое улучшение :)
Уоррен

16

scp имеет -lи rsync имеет --bwlimit.


это не было вариантом на manстранице, которую я проверял ранее ... похоже, это зависит от платформы, возможно?
Уоррен

Вполне возможно. У меня OpenSSH 5.3p1 здесь.
Игнасио Васкес-Абрамс

XenServer 6 имеет SCP с опцией -l
Брайан Боатрайт

Флаг -l в scp не работает на Solaris 11. Есть ли другой вариант или альтернатива?
Алхимик

7

Rsync делает это проще для вас, у него есть возможность сделать это: --bwlimit=KBPS


2

sftp имеет флаг дроссельной заслонки, начиная с Debian 7 и Ubuntu 12.04 в этих дистрибутивах:

-l limit

    Ограничивает используемую пропускную способность, указанную в Кбит / с.

(Конечно, это строчные буквы L.)

Источник: stfp(1)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.