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

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

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

Сообщение Ronin » 03 июн 2019, 14:05

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

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

: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
Сообщения: 1972
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

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

Сообщение Chupaka » 04 июн 2019, 03:07

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

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

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

Сообщение Ronin » 04 июн 2019, 04:11

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

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

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

Сообщение 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"
	}
}

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

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

Сообщение Ronin » 04 июн 2019, 17:18

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

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

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

Сообщение Chupaka » 05 июн 2019, 05:27

Да, именно так

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

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

Сообщение Ronin » 06 июн 2019, 08:48

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 » 06 июн 2019, 09:33

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

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

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

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

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

Сообщение Chupaka » 06 июн 2019, 11:53

Покажите, что конкретно не работает (без подмен всяких) и вывод /queue simple export

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

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

Сообщение Ronin » 06 июн 2019, 15:30

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

Ответить