Обновление маршрутов из скрипта засоряет лог

Автоматизация при помощи встроенного скриптового языка и RouterOS API
Ответить
Аватара пользователя
sasha300
Сообщения: 107
Зарегистрирован: 03 мар 2016, 16:00
Откуда: Санкт-Петербург

Re: Обновление маршрутов из скрипта засоряет лог

Сообщение sasha300 »

Немного переделал скрипт:
: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
}
}
}
Так даже первое do не срабатывает! Или весь код поставить в условие :set $variable true; ?
Аватара пользователя
Chupaka
Сообщения: 3880
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Обновление маршрутов из скрипта засоряет лог

Сообщение Chupaka »

sasha300 писал(а):Так даже первое do не срабатывает!
может, потому, что во втором делается что-то таинственное: ":set condition false;"?
подозреваю, там вместо condition должно быть variable :)

UPD: подсказка: если код обрамлять тегом code, а не quote, то будет сохраняться форматирование :)
Аватара пользователя
sasha300
Сообщения: 107
Зарегистрирован: 03 мар 2016, 16:00
Откуда: Санкт-Петербург

Re: Обновление маршрутов из скрипта засоряет лог

Сообщение sasha300 »

в общем с этим скриптом закончил, все работает (правда оставил number, так как так проще):

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

: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
}
}
p.s.: форматирование удалилось, так как копировал из самого шедуллера. В notepadd++ код не сохранился :(
Ответить