인터페이스를 켜지 않고 네트워크 케이블이 연결되어 있는지 확인


9

~ 20 개의 원격 서버에서 NIC를 식별하려고합니다 (모든 서버에서 2-6 개의 NIC). 우선 사용 준비가 된 사람과 무료 사람을 확인하고 싶습니다. 실제 미디어의 상태를 어떻게 확인할 수 있습니까? 내가 포함한 몇 가지 방법을 알고 ifconfig|grep RUNNING, ethtool, cat /sys/class/net/eth0/carrier,하지만 그들은 모두 인터페이스가 있음을 필요로한다. 모든 인터페이스를 만들고 싶지 않습니다. 이유는 확실하지 않지만 네트워크에서 인터페이스를 활성화하고 싶지는 않지만 구성하고 싶지 않습니다. 이것을 피할 수있는 방법이 있습니까?

아니면 내가 틀렸고 모든 인터페이스가 작동하고 구성되지 않은 것이 나쁘지 않습니다. 연결되어 있어도?

답변:


5

ip link show기본적으로 모든 인터페이스 ip link show up가 표시되며 실행중인 인터페이스 만 표시 하는 데 사용 합니다. 차이를 얻기 위해 필터를 사용할 수 있습니다.


아하. 빠진 케이블은 NO-CARRIER로 표시됩니다.
minaev December

빙고. 감사. 또한 ip addr showIP 주소를 출력에 추가합니다.
minaev December

2
내 컴퓨터에서는 작동하지 않습니다 (Debian squeeze, skge driver) : ip link show“DOWN”이상을 표시하지 않습니다. ip동일한 정보보고 ifconfig/sys/class/net/는 어떤 경우를하지 않는 이유는 무엇입니까? 컴퓨터 에서 ip가져 오는 것과 다른 링크 상태 정보 를 얻 습니까? 아니면 (I get ) 에있는 인터페이스에 대한 링크 상태를 얻 습니까? /sys/class/netifconfig/sys/class/net/sys/class/net/eth0/carrier: Invalid argument
Gilles 'SO- 악한 중지'12

인터페이스가 작동하지 않으면 작동하지 않습니다.
블라디미르 Kunschikov

@Nikhil Mulley 필터 란 무엇입니까?
Joe

2

다음은 실시간 연결 상태에 따라 기본 경로를 업데이트하는 스크립트 입니다. (백그라운드에서 실행) 여러 인터페이스와 함께 작동하며 /tmp/${iface}.metric파일의 우선 순위를 정의 하면 '최상의'연결된 인터페이스가 기본 트래픽을 라우팅하는 데 사용됩니다.

#!/bin/sh

/sbin/ip monitor link | while read -r line
do
    iface=$(echo $line | sed -ne 's/[^ ]* \([^ ]*\): .* state \([^ ]*\).*/\1/p')
    state=$(echo $line | sed -ne 's/[^ ]* \([^ ]*\): .* state \([^ ]*\).*/\2/p')
    if [ "$iface" != "" ] ; then
        echo "$iface is $state"
        if [ -f /tmp/${iface}.metric ] ; then
                echo "updating default route for ${iface}"
                if [ "$state" = "DOWN" ] ; then
                        ip route del default dev "${iface}"
                else
                        ip route add default dev "${iface}" metric `cat /tmp/${iface}.metric`
                fi
        fi
    fi
done

0

ip link show는 케이블이 연결되었음을 나타내는 "LOWER_UP"플래그를 표시합니다. / sys / class / net / eth * / operstate 또는 carrier를 확인할 수도 있습니다. 그러나 이들 모두는 IP 주소가 바인드 된 인터페이스에서만 작동합니다.


1
흥미로운 정보이지만, Original Post에 실제로 응답하지는 않습니다.
X Tian

플러그인을 설치하지 않아도 "up"이라고 표시됩니다.
kangear
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.