ip link show
, per impostazione predefinita mostra tutte le interfacce, usa ip link show up
per mostrare solo le interfacce in esecuzione. Potresti usare i filtri per ottenere la differenza.
Ecco il mio script per aggiornare i percorsi predefiniti in base allo stato della connessione in tempo reale . (viene eseguito in background) funziona con più interfacce, definisco le priorità nel /tmp/${iface}.metric
file, verrà utilizzata l'interfaccia connessa "migliore" per instradare il traffico predefinito.
#!/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