Скрипт для MikroTik: уменьшения скорости пользователей после превышения лимита

В ситуации когда группе пользователей, которая работает через MikroTik (Микротик) (используется в качестве устройства доступа в Интернет). Нам нужно ограничить скорость до 1Мбит/с симметрично тех, кто скачал более 3Гбайт или любого другого числа байт.

Как и любое другое тз на разработку программного обеспечения, скрипты преследуют определённую цель ;)
Сам скрипт очень прост и его можно сразу же протестировать или изменить:

после загрузки Микротика:

 
:local uploadspeed;
:local downloadspeed;
:local totaltraffic;
:local realtraffic;
:local limittraffic;
:set limittraffic 3000;
:for y from=2 to=254 do={
    :local n; 
    :set n "user$y"; 
    :put $n; 
    :set realtraffic [/queue simple get "$n" byte]; 
    :set uploadspeed [:pick $realtraffic 0 ([:find $realtraffic "/"]-1)]; 
    :set downloadspeed [:pick $realtraffic ([:find $realtraffic "/"]+1) [:len $realtraffic]]; 
    :set totaltraffic (($uploadspeed + $downloadspeed) / 1048576); 
    :put $totaltraffic; 
 
    :if ($totaltraffic >= $limittraffic ) do={ /queue simple set [find name="$n"] max-limit="1M/1M"}}

Если результаты Вас устроили, то переходим в консоле

 /system scripts

или через утилиту winbox вводим скрипт Tools -> New Script:

Name – имя нового скрипта (в нашем случае limit_user_after_3g).
Source – пишем вышеприведенный листинг скрипта. Жмем Ок.

Теперь по имени можно найти созданный скрипт. Для запуска нужно нажать Run Script.


Comments to Скрипт для MikroTik: уменьшения скорости пользователей после превышения лимита

  • Хорошая вещь была б если б заработало на версии 5,22 не могу запустить скрипт

    jurammm 14.01.2013 17:47 Ответить

Leave a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Загрузка...
Menu Title