我想检查指定的 ethX 是否处于物理开启或关闭状态。如何使用命令行执行此操作?
答案1
$ ethtool <eth?>
例如:
$ ethtool eth0
提供:
Settings 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 pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000001 (1)
Link detected: yes
答案2
检查/sys/class/net/eth0/operstate
此目录中的其他文件。
据我所知,这是 Linux 2.6+ 所特有的,但它为内核驱动程序提供了一个干净的接口。
文件系统这一部分的完整文档sys
可以在这里找到:
https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net
答案3
ethtool [interface]
最后一行显示你想要的内容:
# ethtool eth0 eth0 的设置: 支持端口:[ TP ] 支持的链接模式:10baseT/Half 10baseT/Full 100baseT/半 100baseT/全 1000baseT/全 支持自动协商:是 公布的链接模式:10baseT/Half 10baseT/Full 100baseT/半 100baseT/全 1000baseT/全 公布的自动协商:是 速度:1000Mb/s 双工:全双工 端口:双绞线 物理强度: 0 收发器:内部 自动协商:开启 支持唤醒:g 唤醒:d 当前消息级别:0x00000037 (55) 检测到链接:是
答案4
dmesg | grep eth
你应该看到所有的状态变化