Как осуществить обработку Exception в скриптах Microtrik?

Mikrotik RouterOS v6.17
железка 2011UiAS-2HnD

строка из скрипта
:local InterfaceISP2Address [/ip address get [find interface=ether2] address]

Если интерфейсу не присвоен адрес (обрыв связи, проблема с dhcp сервером, др проблемы) то скрипт выдает "no such item" и дальше не выполняется.

Как заставить выполнять скрипт дальше, несмотря на "no such item"?
  • Вопрос задан
  • 3995 просмотров
Решения вопроса 2
dannyzubarev
@dannyzubarev
Например, вот так:
:local interfaceName "ether2"
:local InterfaceISP2Address 

:if ([ :len [ /interface find name=$interfaceName ] ] = 0 ) do={
    :log warning "[SCRIPT_NAME] No interface '$interfaceName' was found, please do check updater script configuration."
    :set InterfaceISP2Address "0.0.0.0/0"
} else={
    # Get current IP address for the interface
    :set InterfaceISP2Address [ :tostr [ /ip address get [/ip address find interface=$interfaceName] address ] ]
}
Ответ написан
Комментировать
@LAA
Попробуйте как-то так:

:if ( [/ip address find interface=ether2 ] != "" ) do={\
 :local InterfaceISP2Address [/ip address get [find interface=ether2] address];\
}


Удачи!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы