我需要在不使用提升的(root)权限的情况下查找 Linux 机器上 NIC 的链接速度。
通常我只会使用 ethtool,但这似乎需要 root 权限。
可以执行“dmesg | grep eth”并检查如下行:
igb 0000:01:00.0: eth0: igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
...但是这样的消息一定每次链接速度发生变化时(例如由于电缆故障而从 1000 变为 100 mbit)都会进行记录吗?
有没有更好/更简单的方法来做到这一点?如果重要的话,这些机器正在运行 RHEL 6.6,我可以安装任何所需的软件。
答案1
在本地得到了一个可行的答案:
cat /sys/class/net/<interfacename>/speed
有趣的是,ethtool将要在某些发行版上显示接口数据,无需 root 权限,但在其他发行版上则不然。/sys/class... 方法似乎在我尝试过的所有地方都有效。