продолжение этого сообщения.
Скрипт rt-shaper.sh
Скрипт rt-shaper.sh предназначен для автоматической регилировки скачки/отдачи bittorrent-клиентом rTorrent в зависимости от наличия и количества трафика проходящего через роутер. Другими словами, если форвардного(проходящего через роутер на клиентов в вашей сети) трафика через роутер нет, то rTorrent, установленный на роутер, не ограничивается. Если же форвардный трафик есть, то скорость скачки/отдачи ограничивается. Более того, и скорость скачки, и скорость отдачи изменяется в заданном интервале в зависимости от количества форвардного трафика.
Я рекомендую скрипт ставить в отдельный каталог. У меня он стоит в /opt/etc/rt-shaper
На данный каталог нужно дать права пользователю p2p. У меня в качестве группы для каталога указана p2p и группе даны права на чтение(r), запись(w) и выполнение(x).
Далее, нужно место, где будут храниться значения, которые должны сохраняться между запусками скрипта. Поскольку, при каждом запуске скрипта, туда что-то пишется, лучше это место завести не на флешке, а на винте. У меня винт смонтирован в /home, а на нём я создал подкаталог var и ещё подкаталог rtorrent. Таким образом, каталог с временными файлами имеет такой вид: /home/var/rtorrent
На него тоже нужно дать права на запись пользователю p2p. У меня права на этот каталог совпадают с правами на /home/var/rtorrent
Скрипт /opt/etc/rt-shaper/rt-shaper.sh я приложил к сообщению.
Переменные скрипта, которые возможно прийдется поменять под себя:
RTSHAPER= - каталог, в котором лежит сам скрипт
VARCAT= - каталог временных файлов
LOGFILE= - логфайл
В каталог /opt/etc/rt-shaper можно положить файл с настройками, которые будут использоваться в работе скрипта.
Файл rt-shaper.conf
Code:
min_uprate=50; # минимальный upload rate rTorrent в килобайтах. Скорость будет уменьшаться до него, но не ниже
min_dlrate=10; # минимальный download rate rTorrent в килобайтах. Скорость будет уменьшаться до него, но не ниже
step_rate=10; # шаг изменения rate в килобайтах
max_uprate=70; # максимальный upload rate rTorrent в килобайтах. При появлении форвардного трафика будет выставлен именно он. При дальнейшем росте форвардного трафика rate будет уменьшаться вплоть для min_uprate
max_dlrate=50; # максимальный download rate rTorrent в килобайтах. При появлении форвардного трафика будет выставлен именно он. При дальнейшем росте форвардного трафика rate будет уменьшаться вплоть для min_dlrate
max_count_change_rate=5; # максимально количество пропущенных изменений rate. После этого количества rate будет изменен по любому
interval_rate=7; # частота точнее интервал, в секундах, с которой дергается скрипт. Должен совпадать с тем, что указано в конфиге rTorrent
enable_log=0; # признак ведения лога 0-не вести лог. 1-вести лог, 2-вести подробный лог, 3-лог с промежуточными переменными
Можно конфиг и не ложить, а задать все необходимые значения прямо в скрипте.
Параметры: min_uprate, min_dlrate, max_uprate, max_dlrate, step_rate - задаются в килобайтах и зависят от скорости вашего интернета (У меня сейчас скорость такая: download = 777 килобит, upload = 824 килобит). Т.е. сейчас, при наличии форвардного трафика скорость скачки будет гулять в интервале между 10 килобайтами и 50 килобайтами, а скорость отдачи между 50 килобайтами и 70 килобайтами с шагом в 10 килобайтами.
Параметр: interval_rate - должен совпадать с тем значением, которое будет указано для шедулера rTorrent, который будет запускать скрипт.
Подключение скрипта к rTorrent
Для подключения скрипта к rTorrent, нужно добавить одну строчку в конфиг rTorrent.
У меня конфиг rTorrent лежит в /opt/etc/rtorrent.conf
Добавляем туда строку:
Code:
schedule = rtshaper,15,7,execute=/opt/etc/rt-shaper/rt-shaper.sh
Здесь: 15 - задержка, в секундах, после которой rTorrent начнет запускать скрипт на выполнение. 7 - интервал, в секундах, с которым rTorrent будет запускать скрипт, должен совпадать с параметром interval_rate из rt-shaper.conf.
Вот собственно и все. Надеюсь, что я ни чего не пропустил.