Обновите метрику dhcpcd с помощью скрипта

Я работаю над простым сценарием, который изменяет метрику сети в зависимости от того, может ли он пропинговать некоторый адрес или нет.

Пока у меня есть следующее:

#!/bin/bash
read -r CURRENT_IFA < $CURRENT_IFA_FILE
NOW=$(date --iso-8601=ns | sed s/,/./)

ping -I eth0 -c 1 google.com >> /dev/null

if [ $? -eq 0 ]; then
    if [[ $CURRENT_IFA != "eth0" ]]; then
        # If we're using another interface than ethernet,
        # switch back to ethernet
        echo "{\"event\": \"switchifa\", \"to\": \"eth0\", \"msg\": \"Switch to ethernet\", \"datetime\": \"$NOW\"}"
        sudo ifmetric eth0 50
        sudo ifmetric eth1 100 >> /dev/null
        echo "eth0" > $CURRENT_IFA_FILE
    fi
else
    if [[ $CURRENT_IFA != "eth1" ]]; then
        # If we're not on 4G, switch to it
        echo "{\"event\": \"switchifa\", \"to\": \"eth1\", \"msg\": \"Switch to 4G\", \"datetime\": \"$NOW\"}"
        sudo ifmetric eth1 50 >> /dev/null
        sudo ifmetric eth0 100
        echo "eth1" > $CURRENT_IFA_FILE
    fi
fi

Где CURRENT_IFA_FILE содержит используемый в настоящее время интерфейс.

Запуск этого, кажется, меняет метрики, но на самом деле это не имеет никакого эффекта.

Но если я обновлю метрики в /etc/dhcpcd.conf и перезапущу службу, все будет работать как положено.

Мои вопросы: есть ли способ обновить dhcpcd conf через CLI?

0
задан 29 May 2019 в 14:00

0 ответов

Другие вопросы по тегам:

Похожие вопросы: