通过程序检查 Linux 操作系统和内核 2.4 上的 eth 链路是否开启或关闭

通过程序检查 Linux 操作系统和内核 2.4 上的 eth 链路是否开启或关闭

我需要通过程序(使用 c 或 perl)检查 eth 连接状态(链接开启和链接关闭)的变化。现在我使用 keepalive 方式,但有时会丢失通知。在消息文件中,我看到“eth0 链接关闭”的内核通知,并且此注释始终正确,因此我正在寻找一种方法(可能是系统调用)来检查 eth 状态。

答案1

如果您想检查链接状态(运营商),您可以检查文件:

$ cat /sys/class/net/eth0/carrier

这将显示 1(链接已启动)或 0(链接已关闭)。

答案2

就像 RH73 的一个解决方法一样(不要问我为什么我手头有一堆 RH73 盒子,2010 年):

[madhatta@ms01 madhatta]$ cat /etc/redhat-release 
Red Hat Linux release 7.3 (Valhalla)
[madhatta@ms01 madhatta]$ uname -a
Linux ms01.company.com 2.4.20-30.7.legacysmp #1 SMP Fri Feb 20 10:12:55 PST 2004 i686 unknown
[madhatta@ms01 madhatta]$ sudo mii-tool eth0
eth0: negotiated 100baseTx-FD, link ok
[madhatta@ms01 madhatta]$ 

相关内容