J'essaie d'identifier les NIC sur ~ 20 serveurs distants (2-6 NIC sur chaque serveur). Pour commencer, je veux identifier ceux qui sont prêts à l'emploi et ceux gratuits. Comment puis-je vérifier l'état du support physique? Je connais des moyens, y compris ifconfig|grep RUNNING
, ethtool
, cat /sys/class/net/eth0/carrier
mais tout ce qu'ils exigent que l'interface est en place. Je ne veux pas afficher TOUTES les interfaces. Je ne sais pas pourquoi, mais je n'aime pas avoir activé, mais pas configuré les interfaces dans le réseau. Existe-t-il un moyen d'éviter cela?
Ou je me trompe et il n'y a rien de mal à ce que toutes les interfaces soient en place (et non configurées)? Même s'ils sont branchés?
la source
ip addr show
ajoute même des adresses IP à la sortie.ip link show
rien de plus que «DOWN».ip
rapporte les mêmes informations queifconfig
et/sys/class/net/
dans tous les cas, non? Obtenez-vous des informations sur l'état des liensip
différentes de celles que vous obtenez sous/sys/class/net
ouifconfig
sur votre machine? Ou obtenez-vous l'état des liens sur les interfaces qui sont en panne/sys/class/net
(je reçois/sys/class/net/eth0/carrier: Invalid argument
)?Voici mon script pour mettre à jour les routes par défaut en fonction de l'état de la connexion en temps réel . (s'exécute en arrière-plan) fonctionne avec plusieurs interfaces, je définis les priorités dans les
/tmp/${iface}.metric
fichiers, la «meilleure» interface connectée sera utilisée pour acheminer le trafic par défaut.la source
ip link show affiche le drapeau "LOWER_UP" pour indiquer que le câble est branché. Vous pouvez également rechercher / sys / class / net / eth * / operstate ou carrier. Cependant, tous ces éléments ne fonctionnent que pour une interface avec une adresse IP liée.
la source