GNU/Linux >> Tutoriels Linux >  >> Linux

Comment attendre l'interface eth0 avant d'exécuter les commandes ip link, ip addr et ip route ?

Voici la solution avec laquelle j'ai finalement résolu mon problème :

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

Cependant, j'avais 2 tâches planifiées de "démarrage" sur mon Synology et j'obtenais des erreurs au démarrage. Pour résoudre ce problème, je configure cette tâche pour avoir l'autre comme pré-tâche. En d'autres termes, les tâches exécutées en séquence, attendant que la tâche précédente se termine avant de commencer la nouvelle.


Vérifiez l'état de eth0 à partir de /sys/class/net/eth0/operstate et attendez que l'interface réseau soit opérationnelle :

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. Comment désactiver les commandes d'arrêt et de redémarrage sous Linux

  2. Comment créer des liens matériels et symboliques sous Linux

  3. Comment faire un alias pour un long chemin?

  4. Comment définir le chemin pour les commandes sudo

  5. Trouver l'interface pour l'itinéraire vers un hôte spécifique

Comment Grep pour plusieurs chaînes et modèles

Comment sauvegarder et restaurer une carte SD pour Raspberry Pi

Comment utiliser les commandes Pushd, Popd et Dirs pour une navigation CLI plus rapide

Comment utiliser les commandes Pbcopy et Pbpaste sous Linux

Comment ajouter Icinga Director pour Icinga2 et Icinga Web 2.

Interface ruban pour GTK et Qt