Есть cкрипт уменьшения скорости пользователей после превышения лимита. Этот скрипт определяет количество переданного и полученного трафика пользователем и, если превышен лимит, уменьшает скорость в правиле шейпера этого пользователя. Напишем еще один скрипт, который будет обнулять трафик в правилах шейпера пользователей и возвращать начальную скорость этим правилам. Выполнять будем скрипт один раз в сутки.
Рис.1. Mikrotik Routerboard список правил шейпера.
Рис.2. Mikrotik Routerboard. Выбираем одно из правил шейпера.
В правилах шейпера в Bytes хранится значение переданного и полученного трафика. Нам необходимо обнулить это значение. Обнуление можно выполнить при помощи Reset Counters.
Reset Counters выполнит обнуление для выбранного правила. Еще есть действие Reset All Counters, которое выполняет обнуление для всех правил шейпера, но о нем поговорим немного позже.
Напишем скрипт обнуления:
:for y from=2 to=254 do={:local n; :set n "user$y"; :{/queue simple reset-counters [find name="$n"]}; :{/queue simple set [find name="$n"] max-limit="10M/10M"}}
Заносим в переменную у значения от 2-х до 254-х:
:for y from=2 to=254
Создаем переменную n:
:local n;
Заносим в переменную n значения:
:set n "user$y";
Выполняем обнуление правил шейпера:
:{/queue simple reset-counters [find name="$n"]
Возвращаем исходное значение скорости для правила шейпера:
/queue simple set [find name="$n"] max-limit="10M/10M"
Рис.3. Mikrotik Routerboard, добавляем скрипт в планировщик.
Добавляем скрипт в планировщик, устанавливаем время запуска скрипта и интервал.
Таким образом, скрипт будет запускаться один раз в сутки и обнулять все заданные правила шейпера. Такого вида скрипт стоит использовать, если существуют правила шейпера, для которых не нужно выполнять какие-либо действия. Например, наряду с обычными пользователями (для которых выполняется ограничение по трафику) к данному Mikrotik Routerboard подключена организация, которой не нужно ограничивать скорость.
Рис.4. Mikrotik Routerboard reset-counters-all.
Если же все правила шейпера равнозначны, то намного проще воспользоваться возможностями Reset All Counters “/queue simple reset-counters-all”. Таким образом, мы одним действием обнулим все правила шейпера.
Евгений Рудченко специально для ASP24.




