Рейтинг:0

Управляемый событиями способ обнаружения изменений состояния порта Ethernet (отключен / 10 МБ / 100 МБ / и т. д.) в Linux?

флаг pt

Мне было интересно, есть ли в Linux какой-то интерфейс для обнаружения изменений состояния порта Ethernet через /sys или каким-либо другим способом, управляемым событиями.

Под изменением состояния я подразумеваю ОТКЛЮЧЕНИЕ / 10 мбит / 100 мбит / и т. д.

Мы могли бы просто объединять статус порта каждые X мс, но я надеялся использовать inotify, чтобы отслеживать изменения в файловой системе и запускать наши действия на основе этого.

На самом деле нас больше всего интересуют изменения с 10 Мбит на 1 Гбит. Поэтому иметь что-то, что срабатывает только при подключении/отключении, было бы недостаточно.

Любые идеи?

user10489 avatar
флаг nc
Если бы это было просто соединение, я думаю, что есть как событие dbus, так и событие systemd. Но если вам нужна скорость, я не уверен... Я опрашиваю скорость на одной из своих систем с помощью ethtool и grep примерно раз в 2-3 минуты.
флаг pt
Спасибо за указание... Мне нужно что-то более реальное время, чем 2-3 минуты... Я обсуждаю просмотр dmesg и просто анализирую оттуда запись в журнале, если обнаруживается совпадение. Похоже, это, вероятно, будет решение, которое я в конечном итоге использую.
A.B avatar
флаг cl
A.B
Если изменение скорости всегда предшествует падению/поднятию несущей, вам просто нужно дождаться такого события (`ip monitor link dev eth0` или dbus, NM, systemd...), а затем опросить скорость.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.