zinger Posted April 10, 2016 Share Posted April 10, 2016 Куда положить скрипт или в каком скрипте прописать ссылку на его запуск, что бы скрипт запускался при поднятии сессии PPPoE? Quote Link to comment Share on other sites More sharing options...
ndm Posted April 10, 2016 Share Posted April 10, 2016 Куда положить скрипт или в каком скрипте прописать ссылку на его запуск, что бы скрипт запускался при поднятии сессии PPPoE?На внешний USB-диск. Настройте opkg, он подмонтируется в /opt. При каждом подключении будет вызываться /opt/etc/ndm/wan.d/{ваш_скрипт} с параметрами https://github.com/ndmsystems/packages/wiki/Opkg-Component#ndmwand. Там проверяйте, что это PPPoE0, и вперёд. Quote Link to comment Share on other sites More sharing options...
zinger Posted April 10, 2016 Author Share Posted April 10, 2016 Спасибо! Все оказалось очень просто. Работает так, как и задумывалось. Quote Link to comment Share on other sites More sharing options...
KorDen Posted April 10, 2016 Share Posted April 10, 2016 А нет возможности ловить не только поднятие, но и момент переключения между основным/резервным? В идеале туда передавать названия откуда и куда переключилось (и причину, если возможно), например (названия с потолка): $old_interface - с которого уходим $new_interface - на который уходим $reason: ethdown - отвал физического линка timeout - отвал VPN/PPP по таймауту terminated - закрытие VPN/PPP сервером pingfailed - неуспешная проверка ping check recovery - возврат с резерва при восстановлении основного линка Quote Link to comment Share on other sites More sharing options...
ndm Posted April 10, 2016 Share Posted April 10, 2016 wan.d вызывается каждый раз при переходе wan на новый интерфейс. Можно сохранять текущий wan в файл, чтобы знать "старый". С причиной сложнее, надо подумать. Quote Link to comment Share on other sites More sharing options...
KorDen Posted April 10, 2016 Share Posted April 10, 2016 wan.d вызывается каждый раз при переходе wan на новый интерфейс. Можно сохранять текущий wan в файл, чтобы знать "старый". А, т.е. он все же вызывается именно при смене дефолтного маршрута, ясно. После прочтения мне казалось что вызов идет в момент поднятия любого интерфейса, а не в момент изменения главного. Тогда да, можно сохранять текущий wan в файл и сравнивать с ним.. Правильно ли я понимаю "When the internet connection is down...", что wan.d вызывается с неустановленными переменными только когда больше нет вариантов для маршрута по умолчанию, т.е. либо отвалился и резерв, либо упавшее соединение было единственным с галкой "использовать для доступа в интернет"? Quote Link to comment Share on other sites More sharing options...
zinger Posted April 12, 2016 Author Share Posted April 12, 2016 (edited) Появился еще вопрос. В своем скрипте пишу в сислог с помощью 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 April 12, 2016 by Guest Quote Link to comment Share on other sites More sharing options...
McMCC Posted April 12, 2016 Share Posted April 12, 2016 Появился еще вопрос. В своем скрипте пишу в сислог с помощью logger. Если запустить скрипт руками, все нормально. Если скрипт запускается по поднятию сессии, то время в сислоге пишется с tz +0. Моя же tz +3. Сделайте в начале своего скрипта: export TZ=`cat /etc/TZ | tail -n 1` Quote Link to comment Share on other sites More sharing options...
nos1609 Posted April 13, 2016 Share Posted April 13, 2016 Как отловить момент синхронизации времени? Куда-нибудь писать скриптом из /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 молчит... Quote Link to comment Share on other sites More sharing options...
zinger Posted April 13, 2016 Author Share Posted April 13, 2016 Сделайте в начале своего скрипта: export TZ=`cat /etc/TZ | tail -n 1` Спасибо. Помогло. Все-таки в tz дело было. единственное, пока не разобрался как выводить сообщения в журнал веб-интерфейса. Logger молчит... У меня logger работает отлично. Как самое простое logger 123, так и logger -t test -p daemon.alert 'my message ' $myvar Правда весь сислог у меня уходит на сислог сервер, но и в вебе записи видны. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.