/queue simple :foreach i in=[find] do= {:if ([/ip address find [get $i target-addresses ]]="") do={ :removi $i; } }
Попытка написать скрипт который продеться по всем очередям посмотрет target сравнит сравнит с ip address и если нет удалит
что то не так , буду благодарен за подсказку
скрипт автоматического удаления очередей коих нету в адресах
-
- Сообщения: 4
- Зарегистрирован: 12 апр 2020, 11:12
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: скрипт автоматического удаления очередей коих нету в адресах
Много чего не так Да и ещё непонятное поведение со стороны RouterOS (обошёл использованием переменной $t):
Код: Выделить всё
/queue simple
:foreach i in=[find] do={
:local t [get $i target];
:if ([/ip address find address=$t]="") do={
#remove $i;
:put [get $i target]
}
}
-
- Сообщения: 4
- Зарегистрирован: 12 апр 2020, 11:12
Re: скрипт автоматического удаления очередей коих нету в адресах
Спасибо большое ! Но что то у меня на любом микротике /ip address find address=$t]="" пустой результат всегда (((
пробывал address менять на network тк pppoe пользователи адрес весит там что соответсвует target в очередях
только все равно пустой результат ((
пробывал address менять на network тк pppoe пользователи адрес весит там что соответсвует target в очередях
только все равно пустой результат ((
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: скрипт автоматического удаления очередей коих нету в адресах
Вы пример покажите. Я себе добавил адрес 1.2.3.4/32 на роутер - и он не удалял очередь с таким target. А то что-то из вашего сообщения мне показалось, что вы пишете одно, а хотите совсем другого.
-
- Сообщения: 4
- Зарегистрирован: 12 апр 2020, 11:12
Re: скрипт автоматического удаления очередей коих нету в адресах
Да спасибо за Ваше внимание
ip address print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK INTERFACE
7 D 1.1.1.6/32 10.245.5.74 <pppoe-333>
8 D 1.1.1.6/32 10.245.5.75 <pppoe-444>
queue simple print
Flags: X - disabled, I - invalid, D - dynamic
0 name="10.245.5.74/32" target=10.245.5.74/32 parent=none
packet-marks="" priority=8/8 queue=default-small/default-small
limit-at=0/0 max-limit=30720k/30720k burst-limit=0/0 burst-threshold=0/0
burst-time=0s/0s bucket-size=0.1/0.1
1 name="10.245.5.75/32" target=10.245.5.75/32 parent=none
packet-marks="" priority=8/8 queue=default-small/default-small
limit-at=0/0 max-limit=30720k/30720k burst-limit=0/0 burst-threshold=0/0
burst-time=0s/0s bucket-size=0.1/0.1
2 name="10.245.5.76/32" target=10.245.5.76/32 parent=none
packet-marks="" priority=8/8 queue=default-small/default-small
limit-at=0/0 max-limit=30720k/30720k burst-limit=0/0 burst-threshold=0/0
burst-time=0s/0s bucket-size=0.1/0.1
Что "хотелось" что бы пройдя по очередям сличив target c network удалилась в данном примере 2 очередь где target=10.245.5.76/32 так ip address c network 10.245.5.76 нету
Возможно проблема в "/32" в target ?
ip address print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK INTERFACE
7 D 1.1.1.6/32 10.245.5.74 <pppoe-333>
8 D 1.1.1.6/32 10.245.5.75 <pppoe-444>
queue simple print
Flags: X - disabled, I - invalid, D - dynamic
0 name="10.245.5.74/32" target=10.245.5.74/32 parent=none
packet-marks="" priority=8/8 queue=default-small/default-small
limit-at=0/0 max-limit=30720k/30720k burst-limit=0/0 burst-threshold=0/0
burst-time=0s/0s bucket-size=0.1/0.1
1 name="10.245.5.75/32" target=10.245.5.75/32 parent=none
packet-marks="" priority=8/8 queue=default-small/default-small
limit-at=0/0 max-limit=30720k/30720k burst-limit=0/0 burst-threshold=0/0
burst-time=0s/0s bucket-size=0.1/0.1
2 name="10.245.5.76/32" target=10.245.5.76/32 parent=none
packet-marks="" priority=8/8 queue=default-small/default-small
limit-at=0/0 max-limit=30720k/30720k burst-limit=0/0 burst-threshold=0/0
burst-time=0s/0s bucket-size=0.1/0.1
Что "хотелось" что бы пройдя по очередям сличив target c network удалилась в данном примере 2 очередь где target=10.245.5.76/32 так ip address c network 10.245.5.76 нету
Возможно проблема в "/32" в target ?
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: скрипт автоматического удаления очередей коих нету в адресах
Проблема именно в /32.
Код: Выделить всё
/queue simple
:foreach i in=[find] do={
:local t [get $i target];
:set t [:pick $t 0 [:find $t "/"]];
:if ([/ip address find network=$t]="") do={
remove $i;
}
}
-
- Сообщения: 4
- Зарегистрирован: 12 апр 2020, 11:12
Re: скрипт автоматического удаления очередей коих нету в адресах
Спасибо большое