nmcli device status | grep <интерфейс>

Вопрос или проблема

Можно ли распечатать статус устройства enp0s9 без использования egrep?

$ nmcli device status
DEVICE  TYPE      STATE      CONNECTION         
enp0s3  ethernet  connected  Wired connection 1 
enp0s9  ethernet  connected  Wired connection 2 
lo      loopback  unmanaged  --                 
$ 

Я хочу получить аналогичный вывод, используя только команду nmcli и не прибегая к внешним командам, таким как egrep

$ nmcli device status | egrep 'D|9'
DEVICE  TYPE      STATE      CONNECTION         
enp0s9  ethernet  connected  Wired connection 2 
$ 

Просто чтобы помочь другим, кто придет через год после вопроса…

[user@host]# nmcli -g general.state device show enp0s9
100 (connected)

nmcli показывает одну строку данных за раз.
Чтобы получить те же данные, которые вы предоставили, используйте следующий способ:

[user@host]# nmcli -m multiline -g general.device,general.type,general.state,general.connection device show eth0
GENERAL.DEVICE:enp0s9
GENERAL.TYPE:ethernet
GENERAL.STATE:100 (connected)
GENERAL.CONNECTION:Wired connection 2

Удалив -m multiline, вы получите формат по умолчанию без префикса ключевых слов:

[user@host]# nmcli -g general.device,general.type,general.state,general.connection device show eth0
enp0s9
ethernet
100 (connected)
Wired connection 2

Исключение опции -g general.state даст вам все доступные данные, такие как:

[user@host]# nmcli device show eth0
GENERAL.DEVICE:                         enp0s9
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         B6:20:89:30:E8:03
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     Wired connection 2
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         10.10.0.100/16
IP4.GATEWAY:                            10.10.0.1
IP4.ROUTE[1]:                           dst = 10.10.0.0/16, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 10.10.0.1, mt = 100
IP4.DNS[1]:                             1.1.1.1
IP4.DNS[2]:                             1.1.1.2
IP6.ADDRESS[1]:                         fe80::652c:ff98:a178:aa73/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

Ответ или решение

Чтобы отобразить статус конкретного интерфейса, например, enp0s9, с помощью команды nmcli, вы можете использовать встроенные функции этой утилиты и обойтись без использования внешних команд вроде egrep. Эта задача может быть выполнена несколькими способами, в зависимости от уровня детализации информации, которую вы хотите получить.

Способ 1: Краткая информация о состоянии устройства

Чтобы получить базовую информацию о состоянии соединения, воспользуйтесь следующей командой:

nmcli device show enp0s9 | grep 'GENERAL\.DEVICE\|GENERAL\.TYPE\|GENERAL\.STATE\|GENERAL\.CONNECTION'

Эта команда выведет линейные данные без использования внешних фильтров, таких как grep, но вы также можете использовать встроенные возможности nmcli.

Способ 2: Информация в кратком формате

Если вы хотите показать информацию более структурированно, примените флаг -g для указания нужных параметров и получите вывод без префиксов:

nmcli -g GENERAL.DEVICE,GENERAL.TYPE,GENERAL.STATE,GENERAL.CONNECTION device show enp0s9

Эта команда предоставит четкое указание на имя устройства, тип соединения, его состояние и активное подключение.

Способ 3: Подробная информация обо всех параметрах интерфейса

Если требуется более полная информация, вы можете использовать команду без указания полей для фильтрации:

nmcli device show enp0s9

Этот подход выводит все доступные параметры для интерфейса enp0s9, включая аппаратный адрес (HWADDR), MTU, маршруты IP4/IP6 и DNS.

Заключение

Оптимальная команда зависит от ваших конкретных нужд в получении информации о сетевом устройстве. Использование nmcli позволяет гибко и эффективно управлять сетевыми подключениями в Linux-окружении, избегая зависимости от сторонних инструментов для фильтрации данных. Не забывайте, что корректное управление сетями — это ключевая часть обеспечения стабильной работы вашей IT-инфраструктуры.

Оцените материал
Добавить комментарий

Капча загружается...