Necesito verificar con un script, si eth0está configurado. Si es así, el guión no hará nada. De lo contrario, comenzará wlan0. (No quiero ambos eth0y wlan0estar despierto al mismo tiempo).
¿Cuál sería la forma más fácil de verificar si eth0ya está funcionando?
Estoy usando Debian Wheezy
ACLARACIÓN:
Me gustaría comprobar no solo que el cable eth0está enchufado, sino que la interfaz está configurada (es decir, tiene un conjunto de IP estático o ha recibido un IP de DHCP). Si el cable está enchufado, pero eth0no está configurado correctamente, quiero comenzarwlan0
linux
networking
usuario1968963
fuente
fuente

cat /sys/class/net/ | grep eth0debería darle datos fácilmente analizables. También podría hacerlosudo ethtool eth0 | grep LinkRespuestas:
Puedes hacerlo de muchas maneras. Aquí un ejemplo:
fuente
/sys/class/net/eth0/carrier, para comprobar si hay una señal, pero todavía no puede tener una concesión DHCP sin embargo, etcSi no se muestra nada, entonces su interfaz está inactiva
fuente
Así que aquí tenemos
greplasipherramientas ubicuasstdoutpara una línea que contiene tanto nuestra interfaz de interés como la frase "estado ARRIBA" (gracias a @Lekensteyn por señalar la necesidad de un poco más de especificidad que simplementeUP). Usamos el argumentoacomo forma abreviadaaddressy eso debería ser suficiente para obtener una lista de todas las tarjetas de red configuradas en el sistema.Una ventaja de usar
ippodría ser que realmente debería estar disponible en todas partes; es cómo configuro comúnmente los dispositivos de red de mi teléfono Android, por ejemplo.Se
:colonsutilizan para evitar coincidencias parciales, de esta manera garantizamos una coincidencia eneth0lugar de una posiblesomeothereth0o noeth007.Gracias @RaphaelAhrens por empujarme hacia la corrección y explicar mi solución.
EDITAR:
Para manejar los requisitos actuales puede:
Lo anterior solo imprimirá una dirección IP CIDR si su objetivo
$ifestá ARRIBA, enchufado y tiene una. Para ipv6, la solución es igual de simple con solo modificaciones menores.Si no le gusta
sed, podría lograr resultados similares con otro|pipe ... grepy agregar una-Aopción de contexto a la primeragrep, pero me gustased.fuente
UPsi el dispositivo está levantado, pero no hay un cable conectado es:2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000. También puede especificar el dispositivo para evitar falsos positivos:ip addr show dev eth0.Los otros métodos no funcionan, pero este sí (al menos en Ubuntu):
fuente
ip routeel que lidiar en Debian Stretch.