Помогите разобраться со скриптом?

Автоматизация при помощи встроенного скриптового языка и RouterOS API
Ronin
Сообщения: 13
Зарегистрирован: 03 июн 2019, 13:53

Помогите разобраться со скриптом?

Сообщение Ronin »

Здравствуйте!!! Имеется рабочий скрипт для ограничения скорости после достижения определенного объема трафика.

Код: Выделить всё

:local alltraf;
:local totaltraf;
:local namerule;
:local upload;
:local download;
:local allrules ([/queue simple print count-only] -1);
:for y from=0 to=$allrules do={:set alltraf [/que s get number=$y byte]; :set namerule [/que s get number=$y name]; :set upload [:pick $alltraf 0 ([:find $alltraf "/"]-1)]; :set download [:pick $alltraf ([:find $alltraf "/"]+1) [:len $alltraf]]; :set totaltraf (($upload + $download) / 1048576); :put $totaltraf; :if ($totaltraf >= 300 ) do={ /queue simple set [find name="$namerule"] max-limit="256k/128k"}}
Вопрос такого плана. Скрипт действует на всех участников Simple Queues, как изменить скрипт что бы он ограничивал не всех, а определенный IP адрес??? За ранее благодарю!!!
Аватара пользователя
Chupaka
Сообщения: 4085
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите разобраться со скриптом?

Сообщение Chupaka »

Приветствую.
Т.е. вы хотите, чтобы скрипт проверял не все очереди, а только те, у которых в target задан определённый IP-адрес?
Ronin
Сообщения: 13
Зарегистрирован: 03 июн 2019, 13:53

Re: Помогите разобраться со скриптом?

Сообщение Ronin »

Chupaka писал(а): 04 июн 2019, 03:07 Приветствую.
Т.е. вы хотите, чтобы скрипт проверял не все очереди, а только те, у которых в target задан определённый IP-адрес?
Приветствую!!!
Да правильно вы поняли, идея такая что бы разным пользователям дать разные объемы трафика, а не один для всех. Будет несколько скриптов с разными IP адресами и разными объемами трафика.
За ранее благодарю!!!
Аватара пользователя
Chupaka
Сообщения: 4085
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите разобраться со скриптом?

Сообщение Chupaka »

Немного причесал ваш код:

Код: Выделить всё

:local alltraf;
:local totaltraf;
:local upload;
:local download;

/queue simple
:foreach rule in=[find target="IP.AD.DRE.SS/32"] do={
	:set alltraf [get $rule bytes];
	:set upload [:pick $alltraf 0 ([:find $alltraf "/"] - 1)];
	:set download [:pick $alltraf ([:find $alltraf "/"] + 1) [:len $alltraf]];
	:set totaltraf (($upload + $download) / 1048576);
	:put $totaltraf;
	:if ($totaltraf >= 300 ) do={
		set $rule max-limit="256k/128k"
	}
}
Ronin
Сообщения: 13
Зарегистрирован: 03 июн 2019, 13:53

Re: Помогите разобраться со скриптом?

Сообщение Ronin »

Огромное спасибо друг!!!
Еще вопросик, я так понимаю вместо IP.AD.DRE.SS/32, я ставлю IP пользователя которому хочу выставить объем трафика???
Аватара пользователя
Chupaka
Сообщения: 4085
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите разобраться со скриптом?

Сообщение Chupaka »

Да, именно так
Ronin
Сообщения: 13
Зарегистрирован: 03 июн 2019, 13:53

Re: Помогите разобраться со скриптом?

Сообщение Ronin »

Chupaka писал(а): 04 июн 2019, 12:25 Немного причесал ваш код:

Код: Выделить всё

:local alltraf;
:local totaltraf;
:local upload;
:local download;

/queue simple
:foreach rule in=[find target="IP.AD.DRE.SS/32"] do={
	:set alltraf [get $rule bytes];
	:set upload [:pick $alltraf 0 ([:find $alltraf "/"] - 1)];
	:set download [:pick $alltraf ([:find $alltraf "/"] + 1) [:len $alltraf]];
	:set totaltraf (($upload + $download) / 1048576);
	:put $totaltraf;
	:if ($totaltraf >= 300 ) do={
		set $rule max-limit="256k/128k"
	}
}
Приветствую!!!
Пробовал ваш скрип, не хочет работать (((. Может есть какие мысли??? Прошивка у меня 6.44.
За ранее благодарю!
Ronin
Сообщения: 13
Зарегистрирован: 03 июн 2019, 13:53

Re: Помогите разобраться со скриптом?

Сообщение Ronin »

Когда делаю поиск по имени тогда работает.

Код: Выделить всё

:foreach rule in=[find name="Home server"]
Аватара пользователя
Chupaka
Сообщения: 4085
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите разобраться со скриптом?

Сообщение Chupaka »

Покажите, что конкретно не работает (без подмен всяких) и вывод /queue simple export
Ronin
Сообщения: 13
Зарегистрирован: 03 июн 2019, 13:53

Re: Помогите разобраться со скриптом?

Сообщение Ronin »

Chupaka писал(а): 06 июн 2019, 11:53 Покажите, что конкретно не работает (без подмен всяких) и вывод /queue simple export
Извиняюсь. Все в порядке, мой косяк! Я после IP адреса не ставил /32 поэтому и не срабатывал. Еще раз огромнейшее спасибо за помощь. Если что могу я к Вам обращаться?
Ronin
Сообщения: 13
Зарегистрирован: 03 июн 2019, 13:53

Re: Помогите разобраться со скриптом?

Сообщение Ronin »

Да забыл еще вопросик такой, почему скрипт срабатывает именно только при входящем (download) объеме трафика, а по скрипту должно срабатывать когда исходящий (upload) + входящий (download)? Спрашиваю, потому что у меня спутниковый интернет и провайдер выделяет определенный дневной объем трафика в который входит и входящий и исходящий.
Аватара пользователя
Chupaka
Сообщения: 4085
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите разобраться со скриптом?

Сообщение Chupaka »

Вы так и не показали export ;)
Если ручками открываете очередь - там трафик в обе стороны показывается?
Ronin
Сообщения: 13
Зарегистрирован: 03 июн 2019, 13:53

Re: Помогите разобраться со скриптом?

Сообщение Ronin »

Chupaka писал(а): 06 июн 2019, 16:20 Вы так и не показали export ;)
Если ручками открываете очередь - там трафик в обе стороны показывается?
Показываю export

Код: Выделить всё

# jun/06/2019 21:46:00 by RouterOS 6.44
# software id = XK0X-TSQ1
#
# model = RB941-2nD
# serial number = A1C30995CB8D
/queue simple
add max-limit=3M/12M name=ZTE priority=1/1 target=192.168.10.103/32 time=\
    10h-4h,sun,mon,tue,wed,thu,fri,sat
add max-limit=3M/4M name=Lena target=192.168.10.106/32 time=\
    10h-4h,sun,mon,tue,wed,thu,fri,sat
add max-limit=3M/4M name=Shamov target=192.168.10.108/32 time=\
    10h-4h,sun,mon,tue,wed,thu,fri,sat
add max-limit=3M/4M name="Home server" target=192.168.10.109/32 time=\
    10h-4h,sun,mon,tue,wed,thu,fri,sat
add max-limit=3M/4M name=Notbook target=192.168.10.110/32 time=\
    10h-4h,sun,mon,tue,wed,thu,fri,sat
add max-limit=3M/4M name="Samsung Tab S" target=192.168.10.111/32 time=\
    10h-4h,sun,mon,tue,wed,thu,fri,sat
add max-limit=3M/4M name=Batya target=192.168.10.112/32 time=\
    10h-4h,sun,mon,tue,wed,thu,fri,sat
add max-limit=3M/4M name=Mama target=192.168.10.116/32 time=\
    10h-4h,sun,mon,tue,wed,thu,fri,sat
add max-limit=3M/4M name=DNS-PC-26 target=192.168.10.115/32 time=\
    10h-4h,sun,mon,tue,wed,thu,fri,sat
Немного не понял про ручки????
Аватара пользователя
Chupaka
Сообщения: 4085
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите разобраться со скриптом?

Сообщение Chupaka »

Ручками - в смысле, в WinBox тыкнуть очередь и посмотреть вкладку Traffic.

После ":put $totaltraf;" добавьте какой-нибудь

Код: Выделить всё

:log info "$totaltraf = $upload + $download";
- что будет в лог выводить?
Ronin
Сообщения: 13
Зарегистрирован: 03 июн 2019, 13:53

Re: Помогите разобраться со скриптом?

Сообщение Ronin »

Chupaka писал(а): 06 июн 2019, 18:32 Ручками - в смысле, в WinBox тыкнуть очередь и посмотреть вкладку Traffic.
Изображение
Ronin
Сообщения: 13
Зарегистрирован: 03 июн 2019, 13:53

Re: Помогите разобраться со скриптом?

Сообщение Ronin »

Chupaka писал(а): 06 июн 2019, 18:32 После ":put $totaltraf;" добавьте какой-нибудь

Код: Выделить всё

:log info "$totaltraf = $upload + $download";
- что будет в лог выводить?
Изображение

Судя по логу исходящий трафик не плюсуется к входящему.
Аватара пользователя
Chupaka
Сообщения: 4085
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите разобраться со скриптом?

Сообщение Chupaka »

Судя по логу, исходящий трафик плюсуется к входящему. Не понимаю, где вы увидели обратное.
Ronin
Сообщения: 13
Зарегистрирован: 03 июн 2019, 13:53

Re: Помогите разобраться со скриптом?

Сообщение Ronin »

Chupaka писал(а): 07 июн 2019, 12:06 Судя по логу, исходящий трафик плюсуется к входящему. Не понимаю, где вы увидели обратное.
Приветствую!!!
Да точно сейчас сложил считает, но!!! Входящий считает нормально, а вот исходящий не понятно, вот что показывает в Queue List
Изображение

А вот что в лог
Изображение

Там показыает в исходящем 44 мегабайта, а в лог если мы 4654549/1048576=4,4 мегабайта.
Аватара пользователя
Chupaka
Сообщения: 4085
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите разобраться со скриптом?

Сообщение Chupaka »

Ага, значит, не показалось :) Конечно же вместо

Код: Выделить всё

:set upload [:pick $alltraf 0 ([:find $alltraf "/"] - 1)];
должно быть

Код: Выделить всё

:set upload [:pick $alltraf 0 ([:find $alltraf "/"])];
, а то с "-1" оно последнюю цифру аплоада теряет :)
Ronin
Сообщения: 13
Зарегистрирован: 03 июн 2019, 13:53

Re: Помогите разобраться со скриптом?

Сообщение Ronin »

Chupaka писал(а): 07 июн 2019, 13:24 Ага, значит, не показалось :) Конечно же вместо

Код: Выделить всё

:set upload [:pick $alltraf 0 ([:find $alltraf "/"] - 1)];
должно быть

Код: Выделить всё

:set upload [:pick $alltraf 0 ([:find $alltraf "/"])];
, а то с "-1" оно последнюю цифру аплоада теряет :)
Во все заработало как и положено! Ну дружище не знаю как тебя и благодарить, помог по полной!!! Огромнейшее спасибо! В три форума написал только в этом помогли! Может эта тема еще кому нибудь поможет, потому как читая форумы, встречал подобные вопросы которые были без ответа! Если что могу обращаться? А то я не силен в микротиках, а только учусь и то купил попробовать что за штука, а штука оказалась отличная и никаких отдельных серверов не надо ставить. Стоит и работает коробочка!
Аватара пользователя
Chupaka
Сообщения: 4085
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите разобраться со скриптом?

Сообщение Chupaka »

Ronin писал(а): 07 июн 2019, 16:46 Во все заработало как и положено!
Рад слышать!
Ronin писал(а): 07 июн 2019, 16:46 Если что могу обращаться?
Для этого форум и существует :)
Ronin
Сообщения: 13
Зарегистрирован: 03 июн 2019, 13:53

Re: Помогите разобраться со скриптом?

Сообщение Ronin »

Еще раз огромная благодарность!!!!
Tycoon
Сообщения: 9
Зарегистрирован: 31 май 2023, 15:28

Re: Помогите разобраться со скриптом?

Сообщение Tycoon »

День добрый, для 6.49.8 не актуален скрипт да?
Аватара пользователя
Chupaka
Сообщения: 4085
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите разобраться со скриптом?

Сообщение Chupaka »

У Ronin версия 6.44 была, как вижу. А почему не актуален?
Tycoon
Сообщения: 9
Зарегистрирован: 31 май 2023, 15:28

Re: Помогите разобраться со скриптом?

Сообщение Tycoon »

Сорян, всё работает, где-то накасячил в первый раз.