如何自动更新配置文件中的动态IP

问题描述 投票:0回答:1

我正在前厅的Fedora服务器上设置Dockerized环境。由于我在家用路由器上,因此IP由DHCP分配,并且会不时更改(来自ISP的静态IP每月花费15美元,为此我只需支付托管费用)。我使用dynu.com作为动态DNS托管服务,并使用ddclient更新Dynu上的DNS记录。

我正在使用this package进行设置。但是,指定的内容之一是服务器的外部IP地址。由于此更改,因此需要更新文件以反映此情况。

这是我目前的解决方案。首先,我将使用当前IP地址设置一个环境变量,然后编写一个bash脚本,它将:

  • 使用curl获取来自checkip.dynu.com的外部IP;
  • 根据环境变量进行检查;
  • 如果两者不同,请使用sed命令更新文件中的地址,然后使用sed/etc/environment文件夹中的环境变量更新为最新值。
  • 该脚本将每5分钟作为cron作业运行一次。

这是实现此目标的最佳方法吗?还是可以仅通过将文件中的IP地址设置为当前外部IP的环境变量,然后简单地使用脚本来更新环境变量来完成此操作?还是有更简单的方法?

我正在前厅的Fedora服务器上设置Dockerized环境。由于我在家用路由器上,因此IP由DHCP分配,并且会不时更改(来自ISP的静态IP费用为每条$ 15 ...

bash cron ip-address fedora
1个回答
0
投票

如果只在设置容器时需要更新ip变量,则可以在.env文件中设置值。这样,您可以从主机控制容器环境,设置cron作业或您选择更新ip变量值的任何其他方式。我认为这将是更多的docker风格。在这里看看https://docs.docker.com/compose/env-file/关于如何在docker中使用.env的信息

© www.soinside.com 2019 - 2024. All rights reserved.