ip link show
, affiche par défaut toutes les interfaces, utilisez ip link show up
pour afficher uniquement les interfaces en cours d'exécution. Vous pouvez utiliser des filtres pour obtenir la différence.
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 le /tmp/${iface}.metric
fichiers, la "meilleure" interface connectée sera utilisée pour acheminer le trafic par défaut.
#!/bin/sh
/sbin/ip monitor link | while read -r line
do
iface=$(echo $line | sed -ne 's/[^ ]* \([^ ]*\): .* state \([^ ]*\).*/\1/p')
state=$(echo $line | sed -ne 's/[^ ]* \([^ ]*\): .* state \([^ ]*\).*/\2/p')
if [ "$iface" != "" ] ; then
echo "$iface is $state"
if [ -f /tmp/${iface}.metric ] ; then
echo "updating default route for ${iface}"
if [ "$state" = "DOWN" ] ; then
ip route del default dev "${iface}"
else
ip route add default dev "${iface}" metric `cat /tmp/${iface}.metric`
fi
fi
fi
done