Обновите метрику 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?