18.10.2015, 22:56 | #1 |
Junior Member
Регистрация: 18.10.2015
Сообщений: 3
Вес репутации: 0 |
Отслеживание линков на портах роутера
Привет всем. Появилась необходимость запускать разные скрипты на события изменения линков от провайдера и от проводных клиентов.
и также хотелось бы как-то узнавать номер порта. допустим если отключили кабель от порта 3, то запуск скрипта 1. если подключили кабель к порту WAN - запуск скрипта 2. роутер: dir-620. h/w rev: A1 OpenWrt: 15 версия. На другом форуме советовали копать мануалы ubus и procd. но ничего накопать дельного я не смог (разве что только как переключать leds). подскажите, куда копать |
19.10.2015, 00:26 | #2 |
Senior Member
Регистрация: 19.09.2014
Сообщений: 220
Вес репутации: 0 |
Re: Отслеживание линков на портах роутера
Берешь да грепаешь дмесг на худой конец. А в целом надо по светодиодам смотреть.
Либо так cat /sys/class/net/eth0/operstate up Хотя у меня в mr3020 один порт... Пишешь условие торкаешь его в крон. В кроне указываешь время опроса. Можно скрипт конечно и зациклить, но это на любителя. Упал линк условие сработало на запуск скрипта или запустился сам скрипт. В целом для решения этой задачи надо 15 минут погуглить... Возможно еще придется юзать swconfig и писать что то типа swconfig dev eth0 show а там уже писать вывод в файл и его грепать. Последний раз редактировалось khseal; 19.10.2015 в 00:52. |
19.10.2015, 20:11 | #3 |
Junior Member
Регистрация: 18.10.2015
Сообщений: 3
Вес репутации: 0 |
Re: Отслеживание линков на портах роутера
если бы решение проблемы было бы и правда в 15 минутах гугления - то я бы сюда не писал. но тут не все так просто:
1)если смотреть состояния линков в /sys/class/net/eth*/carrier или в /sys/class/net/eth*/operstate, то на всех интерфейсах в первом файле будет "1", а во втором либо "unknown", либо "up". и при смене линка (от провайдера, от локальных машин) изменений в этих файлах не происходит. на забугорных форумах покопал - сказали: "роутеры думают, что линки всегда подняты. а подключения детектят уже софтово, например демон каждые 2 секунды опрашивает порт.". не поверил им - пошел копать дальше 2)попробовал привязаться к leds - благо файлик со значением их яркости лежит в папке /sys/devices/gpio-leds/leds/LED_NAME (это начиная с версии 14 или 15 openwrt чтоль). но вот интересно - в файле светодиода wan в яркости стоит "1", независимо от того, есть линк или нет. хотя сам светодиод своё состояние меняет при изменении линка. и да, другие светодиоды верно сообщают этими файликами своё состояние. 3)каждые 10 секунд грепать дмесг - не думаю, что хорошая идея. как минимум не хочу каждые 10 секунд запускать лишние процессы. хотя движения в дмесге при изменении линков есть: [57747.110000] rt305x-esw 10110000.esw: link changed 0x00 [57804.440000] rt305x-esw 10110000.esw: link changed 0x10 то есть происходит какое-то событие все-таки, которое заставляет записать пару строк в логи. 4)swconfig - вот за это спасибо, хорошая тема. (только вместо eth0 там надо имя свитча указать). работает оно хоть и не со всеми роутерами, но с моим завелось (поддерживаемые свитчи тут http://wiki.openwrt.org/doc/techref/swconfig ). в моём dir-620а1 линки определяет исправно. но вот теперь остался главный вопрос: я конечно могу каждые 10 секунд запускать swconfig и грепать его, но наверно все-таки есть какое-нить событие в системе при изменении линков, на которое можно поставить запуск скрипта. чтобы не мучить роутер каждые 10 секунд запуском swconfig. может быть есть какой-нить deamon, который сидит в памяти и по событию изменения линка может запустить скриптик? в логи же пишутся изменения линков. как думаете? up скрипт все-таки придется циклить думаю, так как не нашёл я способов, чтобы в кроне скрипт стартовал каждые 10 секунд Последний раз редактировалось cmp; 19.10.2015 в 20:14. |
19.10.2015, 20:42 | #4 | |
Junior Member
Регистрация: 18.10.2015
Сообщений: 3
Вес репутации: 0 |
Re: Отслеживание линков на портах роутера
нарыл также следующую информацию, в которой утверждается, что событие изменения линков можно перехватить.
Цитата:
|
|
06.11.2015, 19:16 | #5 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600 |
Re: Отслеживание линков на портах роутера
cmp
Про cron здесь: http://cyber-place.ru/showpost.php?p=28292&postcount=2 Каждую минуту запускать скрипт: Код:
*/1 * * * * /bin/script или */1 * * * * /usr/bin/script http://cyber-place.ru/showpost.php?p=28866&postcount=14 или выше... |
Метки |
event, link, openwr |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|