GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo esperar a la interfaz eth0 antes de ejecutar los comandos ip link, ip addr e ip route?

Aquí está la solución con la que finalmente resolví mi problema:

while ! ip link show eth0 | grep -q 'state UP'; do
    sleep 1
done

ip link add macvlan0 link eth0 type macvlan mode bridge
ip addr add 192.168.0.240/32 dev macvlan0
ip link set macvlan0 up
ip route add 192.168.0.240/28 dev macvlan0

Sin embargo, tenía 2 tareas programadas de "arranque" en mi Synology y recibía algunos errores en el arranque. Para resolver ese problema, configuro esta tarea para tener la otra como tarea previa. En otras palabras, las tareas se ejecutan en secuencia, esperando que termine la tarea anterior antes de comenzar la nueva.


Comprobar el estado de eth0 de /sys/class/net/eth0/operstate y espere hasta que la interfaz de red esté activa:

while ! [ "$(cat /sys/class/net/eth0/operstate)" = "up" ] 
do
    echo  "waiting for eth0 to be up"
    sleep 2
done

ip link add macvlan0 link eth0 type macvlan mode bridge
ip addr add 192.168.0.240/32 dev macvlan0
ip link set macvlan0 up
ip route add 192.168.0.240/28 dev macvlan0

Linux
  1. ¿Cómo hacer un alias para un camino largo?

  2. cómo usar cURL en una interfaz específica

  3. ¿Cómo saber qué interfaz estoy usando para conectarme a Internet?

  4. ¿Cómo ver en Linux qué interfaz de red y dirección IP de origen se utilizan para una ruta a un host de destino específico?

  5. Encuentra la interfaz para la ruta a un host específico

Cómo hacer Grep para múltiples cadenas y patrones

Cómo hacer una copia de seguridad y restaurar la tarjeta SD para Raspberry Pi

Cómo usar los comandos Pushd, Popd y Dirs para una navegación CLI más rápida

Cómo usar los comandos Pbcopy y Pbpaste en Linux

Cómo agregar Icinga Director para Icinga2 e Icinga Web 2.

Interfaz de cinta para GTK y Qt