Установите статический IP-адрес из текстового файла, если он не получен через DHCP (sed)

Когда IP-адрес не получен через DHCP, я хочу установить статический IP-адрес, который я написал ранее в текстовом файле.

Содержимое моего staticIP.txt:

10.10.0.254

Пока что я получаю статический IP, когда DHCP не работает. Я редактировал /etc/dhcp/dhclient.conf для этого:

timeout 10;
lease {
interface "eth0";
fixed-address 10.0.0.10;
option subnet-mask 255.255.255.0;
renew 2 2022/1/1 00:00:01;
rebind 2 2022/1/1 00:00:01;
expire 2 2022/1/1 0:00:01;
}

(Источник: Установите статический IP-адрес, если он не получен из DHCP (скрипт))

Теперь я хочу перезаписать «фиксированный адрес 10.0.0.10;» со статическим IP "10.10.0.254" в моем staticIP.txt, когда DHCP не получен.

Все, что мне удалось сделать до сих пор, это заменить «фиксированный адрес»; блок с помощью sed и записываем его в файл:

sed -i 's/fixed-address [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}/<MANUAL ENTERED IP>/g' /etc/dhcp/dhclient.conf

Сейчас не хватает двух вещей:

  1. Извлечение IP из staticIP.txt и перезапись «fixed-address [IP];»

  2. Проверьте, не был ли получен IP-адрес через DHCP, и запустите команду sed.

Я был бы рад, если бы мне кто-нибудь помог.

Большое спасибо.


person Community    schedule 08.10.2015    source источник


Ответы (1)


Зачем хранить в файле один IP-адрес? Не лучше ли добавить это прямо в регулярное выражение?

sed -i 's#fixed-address 10.0.0.10;#fixed-address 10.10.0.254;#' /etc/dhcp/dhclient.conf
person Den Vakxden    schedule 16.10.2015