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

15649
warren

В частности, я хочу ограничить скорость 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 
10

3 ответа на вопрос

14
Ignacio Vazquez-Abrams

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

это не было опцией на странице `man`, которую я проверял ранее ... похоже, это зависит от платформы, возможно? warren 14 лет назад 0
Вполне возможно. У меня есть OpenSSH 5.3p1 здесь. Ignacio Vazquez-Abrams 14 лет назад 0
XenServer 6 имеет scp с опцией -l Brian Boatright 11 лет назад 0
Флаг -l в scp не работает на Solaris 11. Есть ли другой вариант или альтернатива? Alchemist 7 лет назад 0
12
davr

Да, есть приложение, которое работает точно так же, как ваш «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. 
спасибо, @davr - один инструмент-обертка против изучения всех опций для каждого - большое улучшение :) warren 14 лет назад 1
7
kbyrd

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

Похожие вопросы