Ich versuche, NICs auf ~ 20 Remote-Servern zu identifizieren (2-6 NICs auf jedem Server). Zunächst möchte ich die gebrauchsfertigen und kostenlosen identifizieren. Wie kann ich den Status der physischen Medien überprüfen? Ich weiß , einige Möglichkeiten, einschließlich ifconfig|grep RUNNING
, ethtool
, cat /sys/class/net/eth0/carrier
, aber alles , was sie verlangen , dass die Schnittstelle aktiviert ist. Ich möchte nicht ALLE Schnittstellen aufrufen. Ich weiß nicht warum, aber ich möchte keine aktivierten, aber nicht konfigurierten Schnittstellen im Netzwerk haben. Gibt es eine Möglichkeit, dies zu vermeiden?
Oder irre ich mich einfach und es ist nichts Schlimmes daran, dass alle Schnittstellen aktiv (und nicht konfiguriert) sind? Auch wenn sie eingesteckt sind?
quelle
ip addr show
fügt der Ausgabe sogar IP-Adressen hinzu.ip link show
Zeigt nichts weiter als "DOWN".ip
meldet die gleichen Informationen wieifconfig
und/sys/class/net/
auf jeden Fall, nicht wahr? Erhalten Sie Linkstatusinformationen, die sich vonip
denen unterscheiden, die Sie unter/sys/class/net
oderifconfig
auf Ihrem Computer erhalten? Oder erhalten Sie den Linkstatus für Schnittstellen, die sich in/sys/class/net
(ich verstehe/sys/class/net/eth0/carrier: Invalid argument
) befinden?Hier ist mein Skript zum Aktualisieren von Standardrouten basierend auf dem Status der Verbindung in Echtzeit . (läuft im Hintergrund) funktioniert mit mehreren Schnittstellen, ich definiere Prioritäten in den
/tmp/${iface}.metric
Dateien, die 'beste' verbundene Schnittstelle wird verwendet, um den Standardverkehr weiterzuleiten.quelle
ip link show zeigt das Flag "LOWER_UP" an, um das eingesteckte Kabel anzuzeigen. Sie können auch nach / sys / class / net / eth * / operstate oder Carrier suchen. All dies funktioniert jedoch nur für eine Schnittstelle, an die eine IP-Adresse gebunden ist.
quelle