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".
$ 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