В скрипте перестали работать блоки if
Добавлено: 19 июл 2013, 09:13
Подскажите, что не так в последних двух строках скрипта:
: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"}
Если последние строки убрать, скрипт работает и переменные обновляются. Если оставить, то скрипт вообще перестает работать. Ни одна переменная не обновляется.
: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"}
Если последние строки убрать, скрипт работает и переменные обновляются. Если оставить, то скрипт вообще перестает работать. Ни одна переменная не обновляется.