ifconfig를 사용하지 않고 인터페이스 RUNNING 상태를 확인하는 방법은 무엇입니까?

ifconfig를 사용하지 않고 인터페이스 RUNNING 상태를 확인하는 방법은 무엇입니까?

몇 가지 배경: 가끔 Wi-Fi 연결이 갑자기 끊어져서 sudo ifconfig wlan0단어를 입력하고 확인합니다 RUNNING. 해당 줄은 다음과 같습니다.

UP BROADCAST RUNNING MULTICAST  [...]

연결이 끊어지면 아무것도 RUNNING설정되지 않습니다. 아무 것도 연결할 수 없지만 인터페이스는 계속 사용할 수 있습니다.

주기적으로 상태를 확인하는 스크립트를 작성할 생각입니다 RUNNING. 문자열을 추출하려면 awk다음과 같은 것을 사용하십시오 sudo ifconfig wlan0 | awk '/RUNNING/ {print $3}'.

ifconfig의 출력을 구문 분석하는 대신 파일 시스템을 확인하는 것과 같은 다른 방법이 있습니까?

저는 Debian Wheezy를 사용하고 있습니다.

감사해요.


추가 정보:

좋아, 방금 몇 가지 조사를 수행하고 개념적 혼란을 해결했습니다.

UP로고 부터 다릅니다 RUNNING. 첫 번째는 인터페이스가 "현재 초기화됨"[1], 즉 "시스템이 인터페이스에 대한 리소스를 할당했습니다"[2]를 의미합니다. 이는 패킷 전송에 대해 아무 말도 하지 않습니다.

RUNNING플래그는 실제로 패킷이 전송되고 수신되고 있음을 나타냅니다. 이더넷 케이블을 뽑으면 이 로고가 사라질 것 같습니다.

[1]https://docs.oracle.com/cd/E19253-01/816-4554/ipconfig-141/index.html

[2]https://stackoverflow.com/questions/11679514/what-is-the-difference- Between-iff-up-and-iff-running

내(또는 모든) 무선 연결에 무슨 일이 일어났는지 모르지만 결과는 동일합니다. 인터페이스는 계속 열려 있고(내 노트북의 Wi-Fi LED는 계속 켜져 있음) 연결이 완전히 끊어졌습니다.

답변1

ifconfig -s또는 같은 명령을 사용하는 대신 다음 파일을 확인하여 Wi-Fi 연결 상태를 모니터링할 수 있습니다 .netstat -i

/sys/class/net/wlan0/flags장치가 켜져 있는지 꺼져 있는지를 나타냅니다. 패킷 전송에 대해 아무 것도 알려주지 않으므로 연결이 작동하는지 확인하는 것은 실제로 유용하지 않습니다. 그 내용/값은 0x1003(on)과 0x1002(off)입니다.

/sys/class/net/wlan0/operstate연결이 작동 중인지 여부를 나타냅니다(패킷 전송 및 수신 중). 이 RUNNING파일은 와 동일합니다 ifconfig. 해당 값 up은 및 입니다 down.

/sys/class/net/wlan0/carrier와 같이 작동합니다 /sys/class/net/wlan0/operstate. 해당 값은 1(상위) 및 0(하위)입니다. 장치가 꺼지면 파일이 비어 있습니다.

관련 정보