>[оверквотинг удален]
> default via 10.3.3.3 dev eth3 proto static metric 20
> default via 10.4.4.4 dev eth4 proto static metric 30
> Иными словами должно произойти изменение метрик путем смещения:
> 10 -> 40
> 20 -> 10
> 30 -> 20
> 40 -> 30
> Команда на изменение маршрута -- это его удаление и установка нового:
> ip route delete default via 10.1.1.1 dev eth1 metric 10
> ip route add default via 10.1.1.1 dev eth1 metric 40 Очевидно, что нет смысла менять метрику всем. Достаточно удалить маршрут с меньшей метрикой и создать его заново с метрикой большей, чем у самого последнего. Метрика - это 32 битное целое. Хватит надолго.
ROUTE=$(ip -4 route | grep default | head -n1)
MAX_METRIC=$(ip -4 route | grep default | tail -n1| sed -e's/.*metric\s*//')
ip r del "$ROUTE"
ip r add $(echo "$ROUTE" | sed -e 's/\d+\s*$//') $(expr $MAX_METRIC + 10)
Код не проверял, идея думаю ясна.