![X를 알 수 없는 경우 wlanX를 통해 핑](https://linux55.com/image/135071/X%EB%A5%BC%20%EC%95%8C%20%EC%88%98%20%EC%97%86%EB%8A%94%20%EA%B2%BD%EC%9A%B0%20wlanX%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%ED%95%91.png)
나는 호스트 테이블을 업데이트하고 특정 호스트에 대한 연결을 테스트하는 bash 스크립트를 실행하고 있습니다. 많은 컴퓨터에서 성공적으로 실행됩니다. 이 프로세스 동안 다음 명령을 사용하여 지정된 호스트와의 통신을 확인합니다.
ping -I wlan0 <host>
그리고
ping -I eth0 <host>
이것은 (유일한) 무선 장치가 udev 장난의 피해자가 된 컴퓨터에서 사용해 보기 전까지는 잘 작동했습니다(이와 유사) 때로는 wlan0이 사용되고 때로는 wlan1이 사용됩니다.
특정 날짜에 시스템이 선호하는 장치를 식별하는 코드를 작성하지 않고도 wlanX 장치를 ping하기 위해 bash 스크립트를 작성할 수 있는 안정적인 방법이 있습니까?
답변1
이 명령을 사용하여 사용된 인터페이스를 식별할 수 있습니다(루트로 실행).
iwconfig 2>/dev/null | grep -o "^\w*"
예를 들어 출력은 다음과 같습니다.
wlan0
스크립트의 변수에 답을 저장해야 합니다.
답변2
이 두 명령 중 하나는 루프백이 아닌 시스템 인터페이스를 나열하므로 이를 반복할 수 있습니다.
ip link | awk '$1+0>1 {print substr($2,1,length($2)-1)}'
netstat -i | awk 'NR>2 && $1 != "lo" {print $1}'
awk
또는 다음 으로 시작하는 줄만 인쇄하도록 조건을 조정할 수 있습니다 wlan
.
ip link | awk '$1+0 && $2 ~ /^wlan/ {print substr($2,1,length($2)-1)}'
netstat -i | awk 'NR>2 && $1 ~ /^wlan/ {print $1}'