Jump to content

Question

Posted

Скрипты в папке /opt/etc/ndm/neighbour.d/ запускаются при каких-то событиях с каким-то устройством в сети, к примеру подключение-отключение. В качестве параметров скрипту передаются некоторые переменные, которые позволяют идентифицировать устройство и событие.

В 3.7 что-то изменилось/сломалось и некоторые события не приходят.

Вот скрипт /opt/etc/ndm/neighbour.d/010-run.sh

#!/bin/sh

echo $id >> /opt/etc/ndm/neighbour.d/1.txt
echo $update >> /opt/etc/ndm/neighbour.d/1.txt
echo $action >> /opt/etc/ndm/neighbour.d/1.txt
echo $address >> /opt/etc/ndm/neighbour.d/1.txt

Если в 3.6 после создания скрипта отключить/включить вайфай на телефоне, подключённом к роутеру, то в 1.txt будет что-то типа

13
none
new
ipv4

А в 3.7 получаем

ip6list
update
ipv6
20

Вдобавок, события или не приходят, или (иногда, когда приходят) с огромной задержкой.

  • Upvote 2

15 answers to this question

Recommended Posts

  • 0
Posted

Да, набор компонентов один и тот же. Если сделать откат, то восстанавливается старое поведение.

  • 0
Posted

Вышла финальная версия, а воз и ныне там. Как сломали с первой беты, так и за 8 бет не починили....

  • 0
Posted

@AminDesu @heizenberg я проверил работу скрипта в версии 3.07.C.0.0-1 и не вижу проблем.

Если вы считаете, что что-то работает неправильно, опишите более подробно проблемный сценарий, а также сравните вывод "show ip hotspot" с ожидаемым состоянием системы.

  • 0
Posted (edited)

Судя по документации

https://github.com/ndmsystems/packages/wiki/Opkg-Component#ndmneighbourd

скрипты с этой папки дожны вызываться при разных евентах в сети. В качестве параметров скриптам передаются некоторые параметры, которые идентифицируют тип события и некоторые другие данные. Конеретно у меня настроены скрипты на экшены new (подключение устройства) и del (отключение устройства). Так вот эти события на 3.7 не отрабатывают. При подключении/отключении устройств скриптам внутри папки /opt/etc/ndm/neighbour.d/ не приходят аргументы new/del, приходит только параметр update. И только иногда, рандомно, могут прийти параметры new/del, и скрипт отработает. Также скрипт отрабатывает сразу после перезагрузки роутера, потом перестает работать.

@sergeyk, проверьте у себя скрипт с первого сообщения, будут ли у Вас в текстовый документ писаться евенты new/del при подключении/отключении устройств.

По крайней мере на 3.6.10 у меня сейчас все работает именно так. А на 3.7 этих евентов нет

Edited by heizenberg
  • 0
Posted
4 минуты назад, heizenberg сказал:

@sergeyk, проверьте у себя скрипт с первого сообщения, будут ли у Вас в текстовій документ писаться евенты new/del при подключении/отключении устройств.

 Вы проверяете с проводными или беспроводными клиентами? Они подключены непосредственно к устройству или через коммутатор / другую AP? Устройства появляются в выводе "show ip hotspot"?

  • 0
Posted

Устройства беспроводные, подключены к роутеру. Вывод "show ip hotspot" не проверял, но по идее они должны там быть. Да и в моем случае никакие условия, кроме версии прошивки, не меняются. 3.6.10 - работает, обновляю на 3.7, все настройки прежние - не работает.

  • 0
Posted
3 минуты назад, heizenberg сказал:

Устройства беспроводные, подключены к роутеру. Вывод "show ip hotspot" не проверял, но по идее они должны там быть. Да и в моем случае никакие условия, кроме версии прошивки, не меняются. 3.6.10 - работает, обновляю на 3.7, все настройки прежние - не работает.

Покажите вывод этого скрипта (/opt/etc/ndm/neighbour.d/01.print_env.sh):

#!/opt/bin/ash
env

Я проверял работу в таком же сценарии; в моём окружении события приходят. Также покажите вывод "show ip hotspot" после подключения устройства.

  • 0
Posted (edited)

@sergeyk, проверил.

Вывод скрипта:

USER=root
SSH_CLIENT=192.168.1.150 57018 222
SHLVL=2
HOME=/opt/root
TERMINFO=/opt/share/terminfo
SSH_TTY=/dev/pts/1
LOGNAME=root
TEMP=/opt/tmp
TERM=xterm
PATH=/opt/sbin:/opt/bin:/opt/usr/sbin:/opt/usr/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG=en_US.UTF-8
TMP=/opt/tmp
SHELL=/opt/bin/sh
PWD=/root
LC_ALL=
SSH_CONNECTION=192.168.1.150 57018 192.168.1.1 222

 

 

Spoiler

1.png

 

Edited by heizenberg
  • 0
Posted
2 часа назад, heizenberg сказал:

@sergeyk, проверил.

Вывод скрипта:

У меня не получается воспроизвести проблему на Ultra II. Я проверяю с зарегистрированным беспроводным клиентом с фиксированным IP-адресом. События new и update приходят при подключении.

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

  • 0
Posted
3 часа назад, heizenberg сказал:

@sergeyk, проверил.

Вывод скрипта:

USER=root
SSH_CLIENT=192.168.1.150 57018 222
SHLVL=2
HOME=/opt/root
TERMINFO=/opt/share/terminfo
SSH_TTY=/dev/pts/1
LOGNAME=root
TEMP=/opt/tmp
TERM=xterm
PATH=/opt/sbin:/opt/bin:/opt/usr/sbin:/opt/usr/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG=en_US.UTF-8
TMP=/opt/tmp
SHELL=/opt/bin/sh
PWD=/root
LC_ALL=
SSH_CONNECTION=192.168.1.150 57018 192.168.1.1 222

 

 

  Показать содержимое

 

Стоп. А почему у вас установлены переменные окружения SSH_*?

Предвижу, что это вывод не того скрипта и не в том месте.

  • 0
Posted
3 minutes ago, Le ecureuil said:

Стоп. А почему у вас установлены переменные окружения SSH_*?

Предвижу, что это вывод не того скрипта и не в том месте.

Ну я просто закинул скрипт по тому пути и запустил его, будучи подключенным по ssh. Вот другой вывод, запись скриптом в файл в момент его вызова системой

timezone=Europe/Kiev
USER=root
LD_LIBRARY_PATH=/opt/lib:/opt/usr/lib:/lib:/usr/lib
SHLVL=1
HOME=/
action=update
NDM_MOUNT_ROOT=/tmp/mnt
LD_BIND_NOW=1
id=17
TERM=linux
update=ip6list
PATH=/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
LANG=UTF-8
SHELL=/bin/sh
address=ipv6
PWD=

 

  • 0
Posted
9 минут назад, heizenberg сказал:

Ну я просто закинул скрипт по тому пути и запустил его, будучи подключенным по ssh. Вот другой вывод, запись скриптом в файл в момент его вызова системой

timezone=Europe/Kiev
USER=root
LD_LIBRARY_PATH=/opt/lib:/opt/usr/lib:/lib:/usr/lib
SHLVL=1
HOME=/
action=update
NDM_MOUNT_ROOT=/tmp/mnt
LD_BIND_NOW=1
id=17
TERM=linux
update=ip6list
PATH=/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
LANG=UTF-8
SHELL=/bin/sh
address=ipv6
PWD=

 

Вот именно это и нужно было с самого начала.

И что, всегда только так?

  • 0
Posted

Если перезагрузить роутер, могут пару раз проскочить события new/del, а дальше остаются только эти

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

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.