Нужно при помощи shell (sh, не bash!) поменять метрики default-маршрутов системы. Количество default-маршрутов может быть произвольным (от нуля до N). В sh, насколько я знаю, нет массивов и я не пойму как без них решить эту задачу...Пример с четыремя default-маршрутами.
До изменения:
$ ip -4 route | grep default
default via 10.1.1.1 dev eth1 proto static metric 10
default via 10.2.2.2 dev eth2 proto static metric 20
default via 10.3.3.3 dev eth3 proto static metric 30
default via 10.4.4.4 dev eth4 proto static metric 40
Что должно быть после изменения:
$ ip -4 route | grep default
default via 10.1.1.1 dev eth1 proto static metric 40
default via 10.2.2.2 dev eth2 proto static metric 10
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