如果未通过DHCP(sed)获取,则从文本文件设置静态IP

时间:2015-10-08 10:55:22

标签: linux sed ip dhcp ifconfig

当没有通过DHCP获得IP地址时,我想设置一个静态IP,我之前在文本文件中写过。

我的staticIP.txt的内容:

  

10.10.0.254

到目前为止,当DHCP无法正常工作时,我会收到静态IP。我为此编辑了/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;
}

(资料来源:Set static ip if not obtained from DHCP (script)

现在我要覆盖"固定地址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. 从staticIP.txt中提取IP并覆盖&#34;固定地址[IP];&#34;

  2. 检查是否通过DHCP获取了IP并运行sed命令

  3. 如果有人可以帮助我,我会很高兴。

    非常感谢。

1 个答案:

答案 0 :(得分:0)

为什么要在文件中保留一个IP地址? 将它直接添加到正则表达式不是更好吗?

sed -i 's#fixed-address 10.0.0.10;#fixed-address 10.10.0.254;#' /etc/dhcp/dhclient.conf