Jump to content

Запуск скрипта при подключении сессии PPPoE


Recommended Posts

Куда положить скрипт или в каком скрипте прописать ссылку на его запуск, что бы скрипт запускался при поднятии сессии PPPoE?

Link to comment
Share on other sites

Куда положить скрипт или в каком скрипте прописать ссылку на его запуск, что бы скрипт запускался при поднятии сессии PPPoE?
На внешний USB-диск. Настройте opkg, он подмонтируется в /opt. При каждом подключении будет вызываться /opt/etc/ndm/wan.d/{ваш_скрипт} с параметрами https://github.com/ndmsystems/packages/wiki/Opkg-Component#ndmwand. Там проверяйте, что это PPPoE0, и вперёд.
Link to comment
Share on other sites

А нет возможности ловить не только поднятие, но и момент переключения между основным/резервным?

В идеале туда передавать названия откуда и куда переключилось (и причину, если возможно), например (названия с потолка):

$old_interface - с которого уходим

$new_interface - на который уходим

$reason:

ethdown - отвал физического линка

timeout - отвал VPN/PPP по таймауту

terminated - закрытие VPN/PPP сервером

pingfailed - неуспешная проверка ping check

recovery - возврат с резерва при восстановлении основного линка

Link to comment
Share on other sites

wan.d вызывается каждый раз при переходе wan на новый интерфейс. Можно сохранять текущий wan в файл, чтобы знать "старый". С причиной сложнее, надо подумать.

Link to comment
Share on other sites

wan.d вызывается каждый раз при переходе wan на новый интерфейс. Можно сохранять текущий wan в файл, чтобы знать "старый".

А, т.е. он все же вызывается именно при смене дефолтного маршрута, ясно. После прочтения мне казалось что вызов идет в момент поднятия любого интерфейса, а не в момент изменения главного. Тогда да, можно сохранять текущий wan в файл и сравнивать с ним.. Правильно ли я понимаю "When the internet connection is down...", что wan.d вызывается с неустановленными переменными только когда больше нет вариантов для маршрута по умолчанию, т.е. либо отвалился и резерв, либо упавшее соединение было единственным с галкой "использовать для доступа в интернет"?

Link to comment
Share on other sites

Появился еще вопрос. В своем скрипте пишу в сислог с помощью logger. Если запустить скрипт руками, все нормально. Если скрипт запускается по поднятию сессии, то время в сислоге пишется с tz +0. Моя же tz +3.

upd: это похоже время до синхронизации. а разница в три часа просто совпала.

Если поставить в скрипте большой sleep, отваливается по таймауту "Opkg::Manager: /opt/etc/ndm/wan.d/myscript.sh: timed out.".

Как отловить момент синхронизации времени? Куда-нибудь писать скриптом из /opt/etc/ndm/time.d, а из wan.d ловить? Или есть способ лучше?

Edited by Guest
Link to comment
Share on other sites

Появился еще вопрос. В своем скрипте пишу в сислог с помощью logger. Если запустить скрипт руками, все нормально. Если скрипт запускается по поднятию сессии, то время в сислоге пишется с tz +0. Моя же tz +3.

Сделайте в начале своего скрипта:

export TZ=`cat /etc/TZ | tail -n 1`

Link to comment
Share on other sites

Как отловить момент синхронизации времени? Куда-нибудь писать скриптом из /opt/etc/ndm/time.d, а из wan.d ловить? Или есть способ лучше?

Скрипт в time.d выполняется когда в логе появляются строчки

Apr 13 19:35:28syslog
Core::System::Clock: system time has been changed.
Apr 13 19:35:28syslog
Ntp::Client: time synchronized with "0.ru.pool.ntp.org".

У меня так задействовано для пакета, которому нужно и точное время и поднятый линк.

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

Link to comment
Share on other sites

Сделайте в начале своего скрипта:

export TZ=`cat /etc/TZ | tail -n 1`

Спасибо. Помогло. Все-таки в tz дело было.

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

У меня logger работает отлично. Как самое простое logger 123, так и logger -t test -p daemon.alert 'my message ' $myvar

Правда весь сислог у меня уходит на сислог сервер, но и в вебе записи видны.

Link to comment
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
Reply to this topic...

×   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...