в logging rules добавить в правило, которое его выводит, тег "!system"sasha300 писал(а):как заблокировать вывод сообщений с тегом system, чтобы в логах этих записей не было?
Обновление маршрутов из скрипта засоряет лог
Re: не понятка с обновлениями для Routerboard
Re: не понятка с обновлениями для Routerboard
Можете это отразить в коде? А то слабо представляю, как глобальная переменная будет хранить предыдущее состояниедля этого объявляем глобальную переменную, которая предыдущее состояние хранит. если состояние изменилось - обновляем переменную, запускаем скрипт
И как понимаю, при вашем решении не будет такого бардака с логами?
Сделал вот так: Все равно выдает изменение маршрутов, если же делаю так: то начинает выдавать чересчур подробная информация.которое его выводит, тег "!system"
Кстати, а как узнать, какие сообщения не будут приходить, если блокирнуть system? А то вот тут написано, что "Generic system messages", в частности интересует, будут ли при !system отражаться, кто когда заходил на Микротик? Методом тыка можно, но ведь должно же быть подробное разьяснение по этому тегу в доках!
Re: не понятка с обновлениями для Routerboard
как-то так:sasha300 писал(а):Можете это отразить в коде? А то слабо представляю, как глобальная переменная будет хранить предыдущее состояниедля этого объявляем глобальную переменную, которая предыдущее состояние хранит. если состояние изменилось - обновляем переменную, запускаем скрипт
И как понимаю, при вашем решении не будет такого бардака с логами?
Код: Выделить всё
global prevState;
if (_CONDITION_) do={
if (!$prevState) do={
put "going from false to true";
set prevState true;
}
} else={
if ($prevState) do={
put "going from true to false";
set prevState false;
}
}
Re: не понятка с обновлениями для Routerboard
спасибо, но уже буду опробую завтра
Re: не понятка с обновлениями для Routerboard
Переменная prevState принимает только булев тип, т.е. значения 0 или 1?
Re: не понятка с обновлениями для Routerboard
что в неё записать - то она и примет. в RouterOS нет строгой типизации
тот пример, что я привёл, точно работает, я сначала проверил его у себя
тот пример, что я привёл, точно работает, я сначала проверил его у себя
Re: не понятка с обновлениями для Routerboard
В общем вот сам скрипт в shedule, не дающий в log лишнюю инфу:
Хотя код выполняет все необходимые задачи, но может есть какие-то замечания?
p.s.: про
Код: Выделить всё
:global condition
:if ($condition = nil) do={
:set $condition "no"
} else={
:local pingresult1 [ping 194.58.117.14 interface=ether1-External count=3];
:local pingresult2 [ping 8.8.4.4 interface=ether1-External count=3];
:if (($pingresult1+$pingresult2)<2) do={
:if ($condition = "yes") do={
/ip route enable numbers=[find gateway=192.168.8.1]
/ip route set numbers=[find gateway=192.168.8.1] distance=1
/ip route enable numbers=[find comment=ping]
/ip route set numbers=[find gateway=109.195.xx.xx and dst-address=0.0.0.0/0] distance=2
:set condition "no"
/delay 5
/system script run email
/system script run reconnect
}
} else={
:if ($condition = "no") do={
/ip route set numbers=[find gateway=192.168.8.1] distance=2
/ip route disable numbers=[find gateway=192.168.8.1]
/ip route set numbers=[find gateway=109.195.xx.xx and dst-address=0.0.0.0/0] distance=1
/ip route disable numbers=[find comment=ping]
:set condition "yes"
/delay 5
/system script run post
/system script run reconnect
}
}
}
p.s.: про
знаю, немного попозже уберу, интересуют другие замеченные ошибки"numbers=" здесь нет необходимости писать
Re: не понятка с обновлениями для Routerboard
теперь хоть понятно, кто там что делает, безо всех этих переименований
Re: не понятка с обновлениями для Routerboard
так а сам код? есть ли по нему замечания?
Re: не понятка с обновлениями для Routerboard
нет единственное, я бы не стал усложнять дело проверкой на nil с последующим присваиванием "no" (чего в моём примере и не было). проще всё, что не "yes", считать этим самым "no" - и не заморачиваться
Re: Обновление маршрутов из скрипта засоряет лог
Немного переделал скрипт:
Так даже первое do не срабатывает! Или весь код поставить в условие :set $variable true; ?:global variable
:local pingresult1 [ping 194.58.117.14 interface=ether1-External count=3];
:local pingresult2 [ping 8.8.4.4 interface=ether1-External count=3];
:if (($pingresult1+$pingresult2)<2) do={
:if (!$variable) do={
/ip route enable [find gateway=192.168.8.1]
/ip route set [find gateway=192.168.8.1] distance=1
/ip route enable [find comment=ping]
/ip route set [find gateway=109.195.xx.xx and dst-address=0.0.0.0/0] distance=2
:set variable true;
/delay 5
/system script run email
/system script run reconnect
}
}
else={
:if ($variable) do={
/ip route set [find gateway=192.168.8.1] distance=2
/ip route disable [find gateway=192.168.8.1]
/ip route set [find gateway=109.195.xx.xx and dst-address=0.0.0.0/0] distance=1
/ip route disable [find comment=ping]
:set condition false;
/delay 5
/system script run post
/system script run reconnect
}
}
}
Re: Обновление маршрутов из скрипта засоряет лог
может, потому, что во втором делается что-то таинственное: ":set condition false;"?sasha300 писал(а):Так даже первое do не срабатывает!
подозреваю, там вместо condition должно быть variable
UPD: подсказка: если код обрамлять тегом code, а не quote, то будет сохраняться форматирование
Re: Обновление маршрутов из скрипта засоряет лог
в общем с этим скриптом закончил, все работает (правда оставил number, так как так проще):
p.s.: форматирование удалилось, так как копировал из самого шедуллера. В notepadd++ код не сохранился
Код: Выделить всё
:global condition
:local pingresult1 [ping 194.58.117.14 interface=ether1-External count=3];
:local pingresult2 [ping 8.8.4.4 interface=ether1-External count=3];
:if (($pingresult1+$pingresult2)<2) do={
:if ($condition) do={
/ip route enable numbers=[find gateway=192.168.8.1]
/ip route set numbers=[find gateway=192.168.8.1] distance=1
/ip route enable numbers=[find comment=ping]
/ip route set numbers=[find gateway=109.195.xx.xx and dst-address=0.0.0.0/0] distance=2
:set condition false;
/delay 5
/system script run email
/system script run reconnect
}
} else={
:if (!$condition) do={
/ip route set numbers=[find gateway=192.168.8.1] distance=2
/ip route disable numbers=[find gateway=192.168.8.1]
/ip route set numbers=[find gateway=109.195.xx.xx and dst-address=0.0.0.0/0] distance=1
/ip route disable numbers=[find comment=ping]
:set condition true
/delay 5
/system script run post
/system script run reconnect
}
}