Como determinar o estado RUNNING da interface sem o ifconfig?

3

Algumas informações básicas: às vezes, minha conexão wi-fi cai de repente, então digito sudo ifconfig wlan0 e procuro a palavra RUNNING . A linha correspondente se parece com:

UP BROADCAST RUNNING MULTICAST  [...]

Quando a conexão cai, não há configuração RUNNING ; Não consigo me conectar a nada, mas a interface ainda está ativa.

Estou pensando em escrever um script para verificar periodicamente o estado RUNNING . Para extrair essa string, usar awk seria algo como: sudo ifconfig wlan0 | awk '/RUNNING/ {print $3}' .

Existe outra maneira, como verificar o sistema de arquivos, em vez de analisar a saída do ifconfig?

Estou usando o Debian Wheezy.

Obrigado.

Mais informações:

OK, fizemos algumas pesquisas e esclarecemos algumas confusões conceituais.

Os sinalizadores UP e RUNNING são diferentes. A primeira significa que a interface "está atualmente inicializada" [1], ou seja, "o sistema alocou os recursos para a interface" [2] - ela não diz nada sobre a transmissão de pacotes.

O sinalizador RUNNING indica que os pacotes estão sendo enviados e recebidos. Aparentemente esta bandeira desaparece se, e. o cabo ethernet está desconectado.

[1] link

[2] link

Eu não sei o que está acontecendo com a minha (ou nenhuma) conexão sem fio, mas o resultado é o mesmo: a interface permanece ativa (a luz do wi-fi permanece acesa no meu laptop) enquanto a conexão é completamente perdido.

    
por undostres 01.04.2015 / 17:43

1 resposta

4

Em vez de usar comandos como ifconfig -s ou netstat -i , é possível verificar os seguintes arquivos para monitorar o status de uma conexão wi-fi:

/sys/class/net/wlan0/flags indica se o dispositivo está ativado ou desativado. Não diz nada sobre transmissão de pacotes, então não é realmente útil verificar se sua conexão está funcionando ou não. Seu conteúdo / valores são 0x1003 (on) e 0x1002 (off).

/sys/class/net/wlan0/operstate indica se a conexão está operacional (os pacotes estão sendo enviados e recebidos). Este arquivo é equivalente ao sinalizador RUNNING exibido por ifconfig . Seus valores são up e down .

/sys/class/net/wlan0/carrier funciona como /sys/class/net/wlan0/operstate . Seus valores são 1 (up) e 0 (down). O arquivo está vazio se o dispositivo estiver desligado.

    
por 03.04.2015 / 05:06