Перейти к содержанию

Вопрос

Опубликовано

Скрипты в папке /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

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

Рекомендуемые сообщения

  • 0
Опубликовано

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

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

  • 0
Опубликовано (изменено)

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

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 этих евентов нет

Изменено пользователем heizenberg
  • 0
Опубликовано
4 минуты назад, heizenberg сказал:

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

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

  • 0
Опубликовано

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

  • 0
Опубликовано
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
Опубликовано (изменено)

@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

 

Изменено пользователем heizenberg
  • 0
Опубликовано
2 часа назад, heizenberg сказал:

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

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

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

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

  • 0
Опубликовано
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
Опубликовано
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
Опубликовано
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=

 

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

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.