Код: Выделить всё
{
:local j [:execute {/interface print follow where [:log info ~Sname~]}];
:delay 10s;
:do { /system script job remove $j } on-error={}
}
Я немного развернул скрипт:
Код: Выделить всё
{
:local j [:execute {/interface print follow where [:log info ~Sname~]}];
:log info [:len $j]
:log info [:typeof $j]
:log info [/system script job print detail as-value]
:delay 10s;
:do { /system script job remove $j } on-error={:log info "no ID"}
}
16:30:00 script,info 4
16:30:00 script,info id
16:30:00 script,info ~Sname~
16:30:00 script,info ~Sname~
16:30:00 script,info ~Sname~
16:30:00 script,info ~Sname~
16:30:00 script,info ~Sname~
16:30:00 script,info ~Sname~
16:30:00 script,info ~Sname~
16:30:00 script,info .id=*60e;.nextid=*61b;owner=pepelxl;policy=local;telnet;ssh;ftp;reboot;read;write;policy;test;winbox;password;web;sniff;sensitive;api;romon;dude;tikapp;
started=jun/21/2020 16:18:01;type=login;.id=*61b;.nextid=*61c;owner=pepelxl;parent=*60e;policy=local;telnet;ssh;ftp;reboot;read;write;policy;test;winbox;password;web;sniff;s
ensitive;api;romon;dude;tikapp;started=jun/21/2020 16:30:00;type=command;.id=*61c;owner=pepelxl;policy=local;telnet;ssh;ftp;reboot;read;write;policy;test;winbox;password;web
;sniff;sensitive;api;romon;dude;tikapp;started=jun/21/2020 16:30:00;type=command
16:30:10 script,error script error: interrupted
В общем то не понята вся конструкция которую пытались донести до меня.
1- с начала мы видим объявление follow - на кой они его здесь применили?
2- потом включили перебор сравнения по where но вместо значение указали действие log, которое ни чего не возвращает для where.
видимо из-за этой конструкции идёт перебор всех значений и 7 раз печатается ~Sname~ (у меня 7 интерфейсов)
3- Далее видно, что переменной j присвоен тип id и значение 4, а НЕТ ни четвёртого терминала, ни терминала с id равным четырём. Так и хочется спросить - какого х...?
4- в конце лога видно, что скрипт падает в ошибку, и вот тут я вообще не понимаю что её вызывает? какое поведение скрипта? Однако если из вызова мы уберём follow, то вполне предсказуемо увидим в логе - no ID.
Вообще исследую возможности по парсингу логов "на лету", так как все примеры из wiki требуют циклический запуск скрипта по расписанию. А вот если бы можно было запустить одновременно два аргумента follow и as-value, то скрипт продолжал бы работу по появлению записи, вот это было бы то что надо. Ну или добраться до консоли из скрипта(local, ssh, telnet) вот тогда тоже можно было бы использовать follow.