Estoy tratando de identificar NIC en ~ 20 servidores remotos (2-6 NIC en cada servidor). Para empezar, quiero identificar aquellos listos para usar y los gratuitos. ¿Cómo puedo verificar el estado de los medios físicos? Sé que algunas maneras, incluyendo ifconfig|grep RUNNING
, ethtool
, cat /sys/class/net/eth0/carrier
, pero todos ellos requieren que la interfaz está activa. No quiero abrir TODAS las interfaces. No estoy seguro de por qué, pero no me gusta tener habilitadas, pero no interfaces configuradas en la red. ¿Hay alguna manera de evitar esto?
¿O simplemente estoy equivocado y no hay nada malo en que todas las interfaces estén activas (y no configuradas)? ¿Incluso si están enchufados?
fuente
ip addr show
incluso agrega direcciones IP a la salida.ip link show
no muestra nada más que "ABAJO".ip
informa la misma información que,ifconfig
y/sys/class/net/
en cualquier caso, ¿no? ¿Obtiene información del estado del enlaceip
que es diferente de lo que obtiene debajo/sys/class/net
o deifconfig
su máquina? ¿O obtiene el estado del enlace sobre las interfaces que están inactivas/sys/class/net
(obtengo/sys/class/net/eth0/carrier: Invalid argument
)?Aquí está mi script para actualizar las rutas predeterminadas en función del estado de la conexión en tiempo real . (se ejecuta en segundo plano) funciona con múltiples interfaces, defino prioridades en los
/tmp/${iface}.metric
archivos, la "mejor" interfaz conectada se utilizará para enrutar el tráfico predeterminado.fuente
ip link show muestra la bandera "LOWER_UP" para indicar que el cable está enchufado. También puede verificar / sys / class / net / eth * / operstate o carrier. Sin embargo, todo esto solo funciona para una interfaz con una dirección IP vinculada.
fuente