Не работает обновление DDNS no-ip

Обсуждение ПО и его настройки
vomus
Сообщения: 48
Зарегистрирован: 28 окт 2013, 22:00

Добрый вечер!
Есть подключение по PPPoE, настраиваю обновление DDNS в no-ip.com. Нашел простой скрипт вида:

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

##############Script Settings##################

:local NOIPUser "no-ip.com LOGIN"
:local NOIPPass "no-ip.com PASSWORD"
:local WANInter "MikroTik Router WAN Interface Name"

###############################################

:local NOIPDomain "$NOIPUser.no-ip.org"
:local IpCurrent [/ip address get [find interface=$WANInter] address];
:for i from=( [:len $IpCurrent] - 1) to=0 do={
  :if ( [:pick $IpCurrent $i] = "/") do={
    :local NewIP [:pick $IpCurrent 0 $i];
    :if ([:resolve $NOIPDomain] != $NewIP) do={
      /tool fetch mode=http user=$NOIPUser password=$NOIPPass url="http://dynupdate.no-ip.com/nic/update\3Fhostname=$NOIPDomain&myip=$NewIP" keep-result=no
      :log info "NO-IP Update: $NOIPDomain - $NewIP"
     }
   }
}

Прикрутил свои параметры, запустил. В ответ - ноль эмоций, обновления не происходит. Попробовал из командной строки обновить wget'ом - проблем нет, все обновляется. В скрипте попробовал немного поменять синтаксис и написал

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

/tool fetch mode=http url="http://$NOIPuser:$NOIPPass@dynupdate.no-ip.com/nic/update\3Fhostname=$NOIPDomain&myip=$NewIP" keep-result=no"

но без разницы. Повставлял всякие промежуточные печати в лог - скрипт отрабатывает нормально, кроме собственно /tool fetch. Может кто-нибудь подскажет, в чем дело? RouterOS 6.5.


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

скопируйте текст скрипта и пихните его в консоль.
на первый взгляд, local надо заменить на global, потом уж сами там дебажте свой код.


vomus
Сообщения: 48
Зарегистрирован: 28 окт 2013, 22:00

simpl3x писал(а):скопируйте текст скрипта и пихните его в консоль.
на первый взгляд, local надо заменить на global, потом уж сами там дебажте свой код.


Доеду завтра до рутера - проверю, но это вроде как считается рабочим скриптом, взятым с wiki.mikrotik.ru :du_ma_et:


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

vomus писал(а):
simpl3x писал(а):скопируйте текст скрипта и пихните его в консоль.
на первый взгляд, local надо заменить на global, потом уж сами там дебажте свой код.


Доеду завтра до рутера - проверю, но это вроде как считается рабочим скриптом, взятым с wiki.mikrotik.ru :du_ma_et:

Ну он мог быть написан 100 лет тому назад. Самый простой способ проверить работоспособнгсть скрипта - пихнуть его в консоль. Если ругаться не будет, значит рабочий :) ну если результат достигнут


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Лучше так
Систем скрипт ран имя_вашего_скрипта

Сразу покажет где косяки


Есть интересная задача и бюджет? http://mikrotik.site
Аватара пользователя
simpl3x
Модератор
Сообщения: 1532
Зарегистрирован: 19 апр 2012, 14:03

ну в случае, когда ты его так запускаешь, то да, он тебе выведет ошибку, НО когда его пихаешь в консоль, он тебе подкрашивает красным, те момент которые ему не нравятся.


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Так удобно синтаксис проверять но не работу скрипта в целом. Например если переменные объявленные как Local, а не global


Есть интересная задача и бюджет? http://mikrotik.site
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Ну, с локальными проблем не будет, если взять скрипт в {}, тогда получится, что в консоли выполнится весь скрипт, как одна команда.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
vomus
Сообщения: 48
Зарегистрирован: 28 окт 2013, 22:00

Совсем прикольно:

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

[vomus@MikroTik] > /system script run 1
[vomus@MikroTik] >

И ничего не меняется! Даже в логе не вижу вывод :log. Копирую скрипт в консоль - подсвечивается первый символ после кавычки в :log info (см. скриншот). Это как понимать? Вбил просто :log info "Test". Работает. С обратным слэшом поставил $. Все равно подсвечивает красным. Убрал вообще переменные, запустил "/system script run 1", на консоле "connecting" и больше ничего.
Последний раз редактировалось simpl3x 22 янв 2014, 09:00, всего редактировалось 1 раз.
Причина: Скриншот удалил, с личной информацией надо быть аккуратнее.


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

а точно vomus1.no-ip.org существует?

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

nslookup: can't resolve 'vomus1.no-ip.org'


Ответить