Como verificar programaticamente se o cabo Ethernet está conectado?

6

Como você sabe, no Windows, quando conectamos o cabo de rede, o símbolo da rede mudará para outro status.

Como posso saber se o cabo está conectado ou não através do prompt de comando no Linux?

    
por Tri Mulyaningtyas 22.10.2014 / 05:00

2 respostas

13

Os dois métodos que vi usados predominantemente são usar ethtool ou analisar manualmente o conteúdo de /sys .

ethtool

Por exemplo, se a sua interface for eth0 , você poderá consultá-la usando ethtool e, em seguida, analisar a linha "Link detectado".

Exemplo
$ sudo ethtool eth0
Settings for eth0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
    Advertised auto-negotiation: Yes
    Speed: 100Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: on
    Supports Wake-on: pumbag
    Wake-on: g
    Current message level: 0x00000001 (1)
    Link detected: yes

Especificamente, este comando:

$ ethtool eth0 | grep "Link"
Link detected: yes

Se estivesse baixo, diria que não.

Usando / sys

Novamente, supondo que estamos interessados em eth0 , você pode analisar manualmente o conteúdo de /sys/class/net/ e, em seguida, eth0 do seu dispositivo. Existem dois arquivos nesse diretório que informam ao usuário se o link está ativo ou não, carrier e operstate :

Quando o fio estiver conectado, esses dois arquivos apresentarão o seguinte:

$ cat /sys/class/net/eth0/{carrier,operstate}
1
up

Quando o fio é desconectado, esses dois arquivos serão apresentados da seguinte forma:

$ cat /sys/class/net/eth0/{carrier,operstate}
0
down

Referências

por 22.10.2014 / 06:57
5

Use mii-tool ( página man ):

# mii-tool em1
em1: negotiated 100baseTx-FD flow-control, link ok

Há também nmcli do NetworkManager:

$ nmcli -f capabilities.carrier-detect,capabilities.speed device show em1
CAPABILITIES.CARRIER-DETECT:            yes
CAPABILITIES.SPEED:                     100 Mb/s

* device pode ser reduzido para d

    
por 22.10.2014 / 05:56