Страница 1 из 1

В скрипте перестали работать блоки if

Добавлено: 19 июл 2013, 09:13
dym69
Подскажите, что не так в последних двух строках скрипта:

:global pingcount 2;
:global pingsum ($pingcount*3-1);
:global checkip1 212.1.244.6;
:global checkip2 212.1.224.6;
:global checkip3 yandex.ru;
:global nbn "groupB";
:global yota "groupA";
:global carentmark [ /ip firewall mangle get 0 new-routing-mark];
:global testip1 [/ping $checkip1 count=$pingcount];
:global testip3 [/ping $checkip3 count=$pingcount];
:global testip2 [/ping $checkip2 count=$pingcount];
:global tip ($testip1+$testip2+$testip3);
:if (($tip<$pingsum) && ($currentmark=$nbn)) do={ /ip firewall mangle set 0 new-routing-mark=$yota; :log error "chanal DOWN"}
:if (($tip>=$pingsum) && ($currentmark=$yota)) do={ /ip firewall mangle set 0 new-routing-mark=$nbn; :log error "chanal UP"}

Если последние строки убрать, скрипт работает и переменные обновляются. Если оставить, то скрипт вообще перестает работать. Ни одна переменная не обновляется.

Re: В скрипте перестали работать блоки if

Добавлено: 19 июл 2013, 09:53
simpl3x
у вас переменная задается:
:global carentmark [ /ip firewall mangle get 0 new-routing-mark];

а дальше вы используете:
:if (($tip<$pingsum) && ($currentmark=$nbn)) do={ /ip firewall mangle set 0 new-routing-mark=$yota; :log error "chanal DOWN"}
:if (($tip>=$pingsum) && ($currentmark=$yota)) do={ /ip firewall mangle set 0 new-routing-mark=$nbn; :log error "chanal UP"}

Re: В скрипте перестали работать блоки if

Добавлено: 19 июл 2013, 11:08
dym69
КАЙФ!!
Спасибо большое!