Verifique se o cabo de rede está conectado na inicialização

2

Na verdade, eu queria postar o abaixo como uma resposta a essa pergunta intitulada: ifup eth0 tempo limite durante a inicialização . Mas não tenho certeza se esta é a abordagem certa ou se é uma maneira de estragar as coisas mal.

Na verdade, podemos verificar se o cabo de rede está conectado ou não à máquina executando o comando

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

Quando o cabo de rede estiver conectado, a saída será 1 para o comando acima e, quando não estiver conectado, a saída será 0 para o acima comando. Eu testei a parte acima no meu sistema e funcionou bem como esperado.

Agora, a questão está em como incluir essa condição na inicialização . Podemos incluir isso no arquivo startup da rede, que pode verificar essa condição antes de exibir as interfaces. Na caixa RHEL, o arquivo /etc/sysconfig/network-scripts/ifcfg-eth0 é usado para exibir as interfaces de rede.

Então, se eu mudar o arquivo para parecer,

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

No entanto, antes de propor este método, ou até mesmo tentar em minha máquina, minha pergunta é: Quando os serviços estão sendo criados, o /sys/class/net/eth0/carrier estará pronto e disponível? Supondo que essa abordagem funcione, se eu decidir usar a rede sem fio, haverá um problema?

    
por Ramesh 30.05.2014 / 00:24

1 resposta

3

Infelizmente, a interface precisa estar pronta para o método sugerido acima funcionar. Fiz as alterações no meu arquivo como sugeri na pergunta e acabei recebendo o erro como " Argumento inválido ". Então, acredito que a interface deve ser consultada se a conexão com fio estiver disponível ou não. Também encontrei informações mais úteis para essa resposta: Como detectar o estado conectado fisicamente de um cabo / conector de rede? .

cat /sys/class/net/ethX is by far the easiest method.

The interface has to be up though, else you will get an invalid argument error.

So first:

ifconfig ethX up

Then:

cat /sys/class/net/ethX
    
por 30.05.2014 / 00:49