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

Обсуждение ПО и его настройки
Ответить
dym69
Сообщения: 45
Зарегистрирован: 03 дек 2012, 14:29

Подскажите, что не так в последних двух строках скрипта:

: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"}

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


Аватара пользователя
simpl3x
Модератор
Сообщения: 1532
Зарегистрирован: 19 апр 2012, 14:03

у вас переменная задается:
: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"}


dym69
Сообщения: 45
Зарегистрирован: 03 дек 2012, 14:29

КАЙФ!!
Спасибо большое!


Ответить