Предположим, что для работы вы используете оборудование Mikrotik miniROUTER (RouterBOARD 450), Mikrotik RouterBoard RB/800, Mikrotik RouterBoard RB1100 или другую модель Mikrotik Routerboard. В Queue Simple есть список правил шейпера.
Рис.1. Mikrotik Routerboard, Queue Simple.
Но вот, вкакой-то момент увас возникла необходимость увеличения скорости для клиентов.
Но если количество правил большое, то изменение их вручную займёт много времени. Для автоматизации изменения правил шейпера напишем скрипт.
Скрипт выглядит следующим образом:
:local name; :local all ([/queue simple print count-only] -1); :for y from=0 to=$all do={:set na
me [/que s get number=$y name]; /queue simple set [find name="$name"] max-limit="60M/60M" }
Разберём скрипт:
:local name; - создаём локальную переменную с именем name, в дальнейшем в неё будет заносится имя правила;
:local all ([/queue simple print count-only] -1); - создаём локальную переменную all. При помощи функции print count-only подсчитываем общее количество правил. Так как нумерация правил начинается с нуля, отнимаем от полученного значения единицу и получаем последний порядковый номер правила;
:for y from=0 to=$all do={:set name [/que s get number=$y name]; - выполняем цикл for, в котором выполняем перебор значений от нуля до значения полученного в переменную all;
:set name [/que s get number=$y name] - в этом действии мы извлекаем имя правила и заносим в ранее созданную переменную name;
/queue simple set [find name="$name"] max-limit="60M/60M" } – выполняем изменение значения max-limit для текущего правила.
Рис.2. Mikrotik Routerboard, добавляем скрипт.
Для проверки работы скрипта перейдём в раздел System scripts.
Рис.3. Mikrotik Routerboard, добавляем содержимое скрипта.
Добавим написанный нами скрипт в поле Source.
Рис.4. Mikrotik Routerboard, запуск скрипта.
Теперь проверим работу скрипта. Для этого нажмём кнопку Run Script, запустим скрипт и убедимся, что значение max-limit для всех правил изменилось.
Евгений Рудченко специально для ASP24.