Static DNS enable/disable

Автоматизация при помощи встроенного скриптового языка и RouterOS API
Аватара пользователя
bear
Сообщения: 167
Зарегистрирован: 03 мар 2016, 18:39

Static DNS enable/disable

Сообщение bear »

Привет

В Static DNS у меня есть две записи
/ip dns static add name=dns.nextdns.io address=192.193.194.195
/ip dns static add name=dns.nextdns.io address=45.46.47.0

Я бы хотел сделать скрипт, который бы пинговал первую запись и, если она недоступна, деактивировал бы её и активировал вторую
Как только первая запись становится доступной, она активируется, а вторая деактивируется

Подскажите пожалуйста, что я делаю не так?

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

:local ultralow1 "192.193.194.195"
:local default1 "45.46.47.0"

:local ultralow1Status [:ping $ultralow1 count=3]

:if ($ultralow1Status = 0) do={
    /ip dns static set [find address=$ultralow1] disabled=yes
    /ip dns static set [find address=$default1] disabled=no
    :log info "NextDNS ultralow1 is not accessible, switching to default1 ..."
} else={
    :local ultralow1Record [:ip dns static get [find address=$ultralow1] disabled]
    :if ($ultralow1Record = true) do={
        /ip dns static set [find address=$ultralow1] disabled=no
        /ip dns static set [find address=$default1] disabled=yes
        :log info "NextDNS ultralow1 is now enabled"
    }
}
Аватара пользователя
Chupaka
Сообщения: 4043
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Static DNS enable/disable

Сообщение Chupaka »

Встречный вопрос: а что не работает-то? :) Ну, или работает не так, как ожидается
Аватара пользователя
bear
Сообщения: 167
Зарегистрирован: 03 мар 2016, 18:39

Re: Static DNS enable/disable

Сообщение bear »

да никак не работает :-)

на данный момент запись default1 "45.46.47.0" включена, ultralow1 "192.193.194.195" выключена
по идее, после запуска скрипта, ultralow1 "192.193.194.195" должна включиться, но ничего не происходит
Аватара пользователя
Chupaka
Сообщения: 4043
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Static DNS enable/disable

Сообщение Chupaka »

Надо :ip dns исправить на /ip dns

Базовая диагностика простая: открываем Терминал, печатаем скобку {, вставляем скрипт, закрываем }, Enter :) Сейчас у меня ошибка вылезла уже на вставке скрипта
Аватара пользователя
bear
Сообщения: 167
Зарегистрирован: 03 мар 2016, 18:39

Re: Static DNS enable/disable

Сообщение bear »

а блин да, забыл про дебаг в терминале
спасибо, буду играться
Аватара пользователя
bear
Сообщения: 167
Зарегистрирован: 03 мар 2016, 18:39

Re: Static DNS enable/disable

Сообщение bear »

рабочий вариант

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

:local ultralow1 "192.193.194.195"
:local default1 "45.46.47.0"

:local ultralow1Status [:ping $ultralow1 count=4]

:local ultralow1RecordId [/ip dns static find address=$ultralow1]
:local ultralow1RecordState [/ip dns static get $ultralow1RecordId disabled]

:if ($ultralow1Status != 4) do={
    :if ($ultralow1RecordState = false) do={
        /ip dns static set $ultralow1RecordId disabled=yes
        /ip dns static set [find address=$default1] disabled=no
        :log info "ultralow1 is not accessible, switching to default1 ..."
    }
} else={
    :if ($ultralow1RecordState = true) do={
        /ip dns static set $ultralow1RecordId disabled=no
        /ip dns static set [find address=$default1] disabled=yes
        :log info "ultralow1 is back online"
    }
}