Страница 1 из 2

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

Добавлено: 03 июн 2019, 14:05
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 адрес??? За ранее благодарю!!!

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

Добавлено: 04 июн 2019, 03:07
Chupaka
Приветствую.
Т.е. вы хотите, чтобы скрипт проверял не все очереди, а только те, у которых в target задан определённый IP-адрес?

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

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

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

Добавлено: 04 июн 2019, 12:25
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"
	}
}

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

Добавлено: 04 июн 2019, 17:18
Ronin
Огромное спасибо друг!!!
Еще вопросик, я так понимаю вместо IP.AD.DRE.SS/32, я ставлю IP пользователя которому хочу выставить объем трафика???

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

Добавлено: 05 июн 2019, 05:27
Chupaka
Да, именно так

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

Добавлено: 06 июн 2019, 08:48
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.
За ранее благодарю!

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

Добавлено: 06 июн 2019, 09:33
Ronin
Когда делаю поиск по имени тогда работает.

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

:foreach rule in=[find name="Home server"]

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

Добавлено: 06 июн 2019, 11:53
Chupaka
Покажите, что конкретно не работает (без подмен всяких) и вывод /queue simple export

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

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

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

Добавлено: 06 июн 2019, 15:44
Ronin
Да забыл еще вопросик такой, почему скрипт срабатывает именно только при входящем (download) объеме трафика, а по скрипту должно срабатывать когда исходящий (upload) + входящий (download)? Спрашиваю, потому что у меня спутниковый интернет и провайдер выделяет определенный дневной объем трафика в который входит и входящий и исходящий.

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

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

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

Добавлено: 06 июн 2019, 17:51
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
Немного не понял про ручки????

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

Добавлено: 06 июн 2019, 18:32
Chupaka
Ручками - в смысле, в WinBox тыкнуть очередь и посмотреть вкладку Traffic.

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

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

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

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

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

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

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

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

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

Судя по логу исходящий трафик не плюсуется к входящему.

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

Добавлено: 07 июн 2019, 12:06
Chupaka
Судя по логу, исходящий трафик плюсуется к входящему. Не понимаю, где вы увидели обратное.

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

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

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

Там показыает в исходящем 44 мегабайта, а в лог если мы 4654549/1048576=4,4 мегабайта.

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

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

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

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

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

:set upload [:pick $alltraf 0 ([:find $alltraf "/"])];
, а то с "-1" оно последнюю цифру аплоада теряет :)

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

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

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

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

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

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

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

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

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

Добавлено: 07 июн 2019, 19:00
Ronin
Еще раз огромная благодарность!!!!

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

Добавлено: 02 июн 2023, 09:26
Tycoon
День добрый, для 6.49.8 не актуален скрипт да?

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

Добавлено: 02 июн 2023, 17:28
Chupaka
У Ronin версия 6.44 была, как вижу. А почему не актуален?

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

Добавлено: 03 июн 2023, 10:10
Tycoon
Сорян, всё работает, где-то накасячил в первый раз.