Jump to content
  • 0
Perevozchic

Перестал работать скрипт в etc/ndm/wan.d

Question

Скрипт перезапускал PPPoE в случае получения серого IP от провайдера.

Принцип был такой - при получении серого IP  через 10 минут сессия перезапускалась, и так по кругу пока не будет получен белый IP. Пауза в 10 минут нужна для того, чтобы не было 100-500 реконнектов и чтобы не получить бан от провайдера.

Реализовать паузу в 10 мин. мне удалось только многократными "sleep 20", т.к. большие "sleep" не срабатывали...

Всё прекрасно работало на прошивке 2.08 (счастью не было предела, всегда белый айпишник), а после обновления на 2.09 скрипт после первых "sleep 20" выдаёт Opkg::Manager: /opt/etc/ndm/wan.d/white-ip.sh: timed out.

Может кто подскажет, как реализовать паузу в 10 минут, или где взять прошивку 2.08 для Гиги3 с OPKG компонентом? На 4PDA есть прошивка, но без нужного компонента... Обновился на свою голову...

 

Share this post


Link to post
Share on other sites

17 answers to this question

Recommended Posts

  • 0

Тут почти полное собрание сочинений от ndms... 

  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0
4 часа назад, Mamay сказал:

Тут почти полное собрание сочинений от ndms... 

Спасибо.

Но всё равно интересно, почему то что работало на стабильной 2.08 перестало работать на стабильной 2.09? Что-то поломали?

Share this post


Link to post
Share on other sites
  • 0
15 минут назад, Perevozchic сказал:

Спасибо.

Но всё равно интересно, почему то что работало на стабильной 2.08 перестало работать на стабильной 2.09? Что-то поломали?

Наоборот, исправили: скрипты, которые вызываются из /opt/etc/ndm/*, не должны работать длительное время, иначе они блокируют внутреннюю очередь событий. Именно поэтому на запуск каждого скрипта есть тайм-аут, сейчас он равен 24 секундам. Если скрипт работает дольше, он принудительно останавливается.

Эти скрипты не предназначены для длительной работы, они нужны только для того, чтобы сообщить остальной части системы о каком-нибудь событии и тут же завершиться.

  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, sergeyk сказал:

Наоборот, исправили

Ну для меня именно поломали. Очень жаль, остаётся только откат на 2.08...

Share this post


Link to post
Share on other sites
  • 0
15 minutes ago, Perevozchic said:

Ну для меня именно поломали. Очень жаль, остаётся только откат на 2.08...

Ну зачем? Напишите свой скрипт который пускается при старте системы и делает в бесконечном цикле sleep на минуту. И ловит сигнал HUP, при старте wan ему дают сигнал и он включает счетчик. После того как счетчик будет 10 - сбрасываем его и смотрим адрес на WAN. Если все плохо - рестартуем сессию.

Или при старте WAN пишите файл флаг в tmp, и чекайте его по крону. Вариантов масса.

  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, gaaronk сказал:

Напишите свой скрипт

Я тот готовый скрипт взятый здесь на форуме два месяца до ума доводил, т.к. в этом ничего не понимаю. Идеальным для моих условий стало рвать штатным расписанием сессию в три ночи (выше вероятность получения белого ip с первого раза), и в случае серого IP через 10 минут переподключаться.

А Ваш совет для меня из области фантастики, мне проще полностью перебрать двигатель в современном авто, чем самому написать скрипт...

Share this post


Link to post
Share on other sites
  • 0
32 минуты назад, sergeyk сказал:

на запуск каждого скрипта есть тайм-аут, сейчас он равен 24 секундам

А нельзя ли как нибудь самому убрать это ограничение? Это решило бы мою проблему.

Share this post


Link to post
Share on other sites
  • 0

@Perevozchic попробуйте из хука запустить другой скрипт в фоне (background). Хук отработает быстро, а в процессах (возможно) останется другой скрипт, в котором можете использовать любой sleep.

Еще вариант - поставить проверку IP в cron, проверять раз в 10 минут. Тут уже и хуки не нужны....

Share this post


Link to post
Share on other sites
  • 0

Вопрос снимается. Нашёлся добрый человек и помог всё настроить. Теперь всё как раньше работает и на 2.09

Спасибо gaaronk 

  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0

Ну и расписали бы это решение в подробностях для других. Вам помогли, Вы другим помогите.

Share this post


Link to post
Share on other sites
  • 0

Да собственно оно мне и не больно надо. Опечатки были в исходном скрипте который правился.

Edited by gaaronk
  • Thanks 1
  • Y'r wrong 1

Share this post


Link to post
Share on other sites
  • 0

Модераторам просьба поправить в названии темы пересЛал на пересТал

Share this post


Link to post
Share on other sites
  • 0
1 час назад, gaaronk сказал:

Создайде скрипт

Тройка. Никто повторить не сможет. Подробнее, с комментариями и без очепяток типа `dafault`. А если так профиль называется с ошибкой - то где он. Что такое wan скрипт поясните. Отредактируйте свой пост, новый не пишите.

  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0
43 минуты назад, zyxmon сказал:

Никто повторить не сможет.

Так ведь работает же с 

43 минуты назад, zyxmon сказал:

очепяток типа `dafault`.

Емейлы приходят...

Поправил на 'default' , спасибо за подсказку.

Я бы показал свои колхозные скрипты, которые у меня работают корректно, но боюсь засмеют. Я ещё зимой просил здесь на форуме немного помочь с правками скрипта, но ни кто  не откликнулся и пришлось городить самому...

Edited by Perevozchic

Share this post


Link to post
Share on other sites
  • 0
11 минуту назад, Perevozchic сказал:

Так ведь работает же с 

Зажмурившись на другом роутере сделайте. Опишите действия по шагам.

Share this post


Link to post
Share on other sites
  • 0

Вообще обсуждение именно переподключения при получении серого IP адреса от провайдера обсуждалось здесь - 

Из той темы я и брал скрипты и правил не один месяц добиваясь нужного мне алгоритма работы. А после обновления Гиги3 до 2.09 всё работать перестало. Собственно ответ на вопрос почему перестало - получен

6 часов назад, sergeyk сказал:

скрипты, которые вызываются из /opt/etc/ndm/*, не должны работать длительное время, иначе они блокируют внутреннюю очередь событий. Именно поэтому на запуск каждого скрипта есть тайм-аут, сейчас он равен 24 секундам. Если скрипт работает дольше, он принудительно останавливается.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...