Некоторые Менеджеры окон имеют большую настраиваемость, чтобы сделать материал как это, но намного более свежие включая метагород и compiz потеряли этот вид настройки. Я раньше использовал fvwm, чтобы сделать материал как этот. Более простой независимый подход WM должен был бы попытаться повторно присвоить фокус назад правильному окну. Посмотрите на xdotool http://www.semicomplete.com/projects/xdotool/xdotool. Это должно быть доступно в Вашем репозитории дистрибутива. Это может, среди прочего, присвоить фокус определенному Windows. Я принимаю Ваше выполнение сценария от Терминала, что Вы не хотите освобождать фокус. Если так, необходимо смочь использовать $WINDOWID, чтобы получить идентификатор Окна для терминала и использовать xdotool в конце сценария для перефокусировки Терминала.
Да и wget и вихревая поддержка, ограничивающая Ваш уровень загрузки. Обе опции непосредственно упоминаются в странице справочника.
--limit-rate <speed> Specify the maximum transfer rate you want curl to use. This feature is useful if you have a limited pipe and you'd like your transfer not to use your entire bandwidth. The given speed is measured in bytes/second, unless a suffix is appended. Appending 'k' or 'K' will count the number as kilobytes, 'm' or M' makes it megabytes, while 'g' or 'G' makes it gigabytes. Examples: 200K, 3m and 1G.
Например: curl --limit-rate 423K
--limit-rate=amount Limit the download speed to amount bytes per second. Amount may be expressed in bytes, kilobytes with the k suffix, or megabytes with the m suffix. For example, --limit-rate=20k will limit the retrieval rate to 20KB/s. This is useful when, for whatever reason, you don't want Wget to consume the entire available bandwidth.
Например: wget --limit-rate=423k
Возможно ограничить скорость трафика с помощью tc
и netem
инструменты, но это ограничит уровень для сетевого интерфейса компьютера. Я предполагаю, что Вы используете только wget
или curl
и никакое другое приложение не обменивается трафиком через сетевой интерфейс.
tc
Маркерный фильтр блока (TBF) использования для управления уровнем.
Один пример TBF был бы следующим образом (касательно http://www.lartc.org/manpages/tc-tbf.html):
Для присоединения TBF с длительным максимальным уровнем 0.5mbit/s, peakrate 1.0mbit/s, 5-килобайтного буфера, с пределом размера очереди перед блоком, вычисленным так, TBF вызывает самое большее 70 мс задержки, с идеальным peakrate поведением, проблемой:
# tc qdisc add dev eth0 root tbf rate 0.5mbit \ burst 5kb latency 70ms peakrate 1mbit \ minburst 1540
Другой пример использования tc и netem был бы следующим образом (найден в http://www.linuxfoundation.org/collaborate/workgroups/networking/netem):
Нет никакого управления уровнем, встроенного к дисциплине netem, вместо этого используйте одну из других дисциплин, которая действительно делает управление уровнем. В этом примере мы используем Маркерный фильтр блока (TBF) для ограничения вывода.
Добавить задержку каждого пакета идти/проникать интерфейс eth0
# tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
добавить скорость передачи данных в tbf, размере буфера пакетов и максимальном пакетном пределе
# tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
Видеть список правил, присвоенных в tc для интерфейса eth0
# tc -s qdisc ls dev eth0
Вывод вышеупомянутой команды был бы как ниже
qdisc netem 1: limit 1000 delay 100.0ms
Sent 0 bytes 0 pkts (dropped 0, overlimits 0 )
qdisc tbf 10: rate 256Kbit burst 1599b lat 26.6ms
Sent 0 bytes 0 pkts (dropped 0, overlimits 0 )
Проверьте опции для буфера и предела, поскольку Вы могли бы найти необходимость в больших значениях по умолчанию, чем они (они находятся в байтах),
2 года спустя я брошу эту лакомый кусочек, в то время как wget
и curl
не являются интерактивными, как минимум wget
(и возможно curl
, но я не знаю наверняка) имеет переключатель -c
(который означает продолжение с того места, где я остановился на скачивании ранее). Так что если вам нужно изменить скорость в середине загрузки и вы предположительно использовали переключатель -c
с --limit-rate=x
, то вы можете остановить wget
и перезапустить его с другой скоростью, и она изменится.
wget
ниcurl
интерактивные программы. – Ulrich Dangel 23.05.2012, 18:28wget
илиcurl
процесс и резюме сwget -c
илиcurl -C
. Если действительно необходимо реконфигурировать рабочий процесс, используйте струйку с демоном — но установка является немного сложной. С другой стороны, изучите формирование трафика — снова, установка, если сложный. – Gilles 'SO- stop being evil' 24.05.2012, 02:08