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