启动时检查网络电缆是否已插入

启动时检查网络电缆是否已插入

我实际上想发布以下内容作为这个问题的答案:启动期间 ifup eth0 超时。但我不确定这是否是正确的方法,或者这是一种把事情搞砸的方式。

我们实际上可以通过运行命令来检查网络电缆是否连接到机器,

grep "" /sys/class/net/eth0/carrier

当插入网线时,输出将是1对于上述命令,当未插入时,输出将为0对于上述命令。我在我的系统中测试了上述部分,它按预期工作正常。

现在的问题在于如何将这个条件包含在启动。我们可以将其包含在网络中启动文件,它可以在启动接口之前检查此情况。在 RHEL 框中,该文件/etc/sysconfig/network-scripts/ifcfg-eth0用于启动网络接口。

所以,如果我将文件更改为如下所示,

cable=$(grep "" /sys/class/net/eth0/carrier)
if $cable -eq 1 then
   #rest of the /etc/sysconfig/network-scripts/ifcfg-eth0 as it is. 
else
   break

然而,在提出这种方法之前,甚至在我的机器上尝试之前,我的问题是:当服务启动时,它们会/sys/class/net/eth0/carrier准备好并可用吗?假设这种方法有效,如果我决定使用无线网络会有问题吗?

答案1

不幸的是,接口必须启动才能使上述建议的方法起作用。我按照问题中的建议对文件进行了更改,最终收到错误为“无效的论点“。所以,我相信接口应该可以查询有线连接是否可用。我还找到了有关此答案的更多有用信息:如何检测网线/连接器的物理连接状态?

cat /sys/class/net/ethX是迄今为止最简单的方法。

但接口必须处于启动状态,否则您将收到无效参数错误。

首先:

ifconfig ethX up

然后:

cat /sys/class/net/ethX

相关内容