How to detect the physical connected state of a network cable/connector? How to detect the physical connected state of a network cable/connector? linux linux

How to detect the physical connected state of a network cable/connector?


You want to look at the nodes in

/sys/class/net/

I experimented with mine:

Wire Plugged in:

eth0/carrier:1eth0/operstate:unknown

Wire Removed:

eth0/carrier:0eth0/operstate:down

Wire Plugged in Again:

eth0/carrier:1eth0/operstate:up

Side Trick: harvesting all properties at once the easy way:

grep "" eth0/* 

This forms a nice list of key:value pairs.


You can use ethtool:

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

To only get the Link status you can use grep:

$ sudo ethtool eth0 | grep Link    Link detected: yes


Use 'ip monitor' to get REAL TIME link state changes.