Próbuję zidentyfikować karty sieciowe na ~ 20 zdalnych serwerach (2-6 kart sieciowych na każdym serwerze). Na początek chcę zidentyfikować te gotowe do użycia i darmowe. Jak mogę sprawdzić stan fizycznych nośników? Znam kilka sposobów, w tym ifconfig|grep RUNNING
, ethtool
, cat /sys/class/net/eth0/carrier
, ale wszystkie one wymagają, że interfejs jest gotowy. Nie chcę uruchamiać WSZYSTKICH interfejsów. Nie wiem dlaczego, ale nie lubię mieć włączonych, ale nie skonfigurowanych interfejsów w sieci. Czy istnieje sposób, aby tego uniknąć?
A może po prostu się mylę i nie ma nic złego w tym, że wszystkie interfejsy działają (i nie są skonfigurowane)? Nawet jeśli są podłączone?
źródło
ip addr show
nawet dodaje adresy IP do danych wyjściowych.ip link show
pokazuje tylko „DOWN”.ip
Raporty te same informacje,ifconfig
a/sys/class/net/
w każdym razie, nie? Czy otrzymujesz informacje o statusie linku,ip
które różnią się od tego, co dostajesz poniżej/sys/class/net
lubifconfig
na komputerze? Czy otrzymujesz status linku na temat interfejsów, które są wyłączone/sys/class/net
(dostaję/sys/class/net/eth0/carrier: Invalid argument
)?Oto mój skrypt do aktualizacji domyślnych tras na podstawie stanu połączenia w czasie rzeczywistym . (działa w tle) współpracuje z wieloma interfejsami, określam priorytety w
/tmp/${iface}.metric
plikach, „najlepszy” podłączony interfejs będzie używany do kierowania domyślnego ruchu.źródło
ip link show wyświetla flagę „LOWER_UP” wskazującą, że kabel jest podłączony. Możesz także sprawdzić / sys / class / net / eth * / operstate lub operator. Wszystkie te działają jednak tylko w przypadku interfejsu z powiązanym adresem IP.
źródło