Я пытаюсь определить сетевые карты на ~ 20 удаленных серверах (2-6 сетевых карт на каждом сервере). Для начала хочу выделить готовых к использованию и бесплатных. Как я могу проверить состояние физического носителя? Я знаю несколько способов, в том числе ifconfig|grep RUNNING
, ethtool
, cat /sys/class/net/eth0/carrier
, но все они требуют , чтобы интерфейс вверх. Я не хочу поднимать ВСЕ интерфейсы. Не знаю почему, но мне не нравится включать, но не настраивать интерфейсы в сети. Есть ли способ, которым я могу избежать этого?
Или я просто не прав, и нет ничего плохого в том, что все интерфейсы работают (и не настроены)? Даже если они подключены?
источник
ip addr show
даже добавляет IP-адреса на выходе.ip link show
показывает только «ВНИЗ».ip
сообщает ту же информацию, чтоifconfig
и/sys/class/net/
в любом случае, не так ли? Получаете ли вы информацию о статусе ссылки,ip
которая отличается от той, на которой вы находитесь/sys/class/net
илиifconfig
на вашей машине? Или вы получаете статус ссылки об интерфейсах, которые отключены/sys/class/net
(я понимаю/sys/class/net/eth0/carrier: Invalid argument
)?Вот мой скрипт для обновления маршрутов по умолчанию в зависимости от состояния соединения в реальном времени . (работает в фоновом режиме) работает с несколькими интерфейсами, я определяю приоритеты в
/tmp/${iface}.metric
файлах, «лучший» подключенный интерфейс будет использоваться для маршрутизации трафика по умолчанию.источник
ip link show отображает флаг «LOWER_UP» для обозначения подключенного кабеля. Вы также можете проверить / sys / class / net / eth * / operstate или carrier. Однако все это работает только для интерфейса с привязанным к нему IP-адресом.
источник