2013-03-26 127 views
0

我使用具有动态IP和动态的机器来管理其他远程机器。我希望能够做的是远程机器检查DynDNS的主机的IP,即将主机的IP地址添加到主机。allow

dig +short unix.stackexchange.com 

,并使用被添加到线的末端在hosts.allow中最终得到的IP bash脚本,所以我可以每24小时运行一次。

+0

不要。 'hosts.allow'接受DNS名称。 – 2013-03-26 11:12:03

+0

不适用于dyndns – Lurch 2013-03-26 11:14:17

+0

哦,您是对的,需要反向DNS条目。 – 2013-03-26 11:18:23

回答

1

这里的主要挑战是确保你也删除了前一个,所以我会在hosts.allow中添加某种标志以及IP。像“我的DynDNS服务器”。因此,在你的脚本,你会先删除标记行(确保不会有其他行这个!!):

grep -v "My DynDNS Server" /etc/hosts.allow > /tmp/hosts.allow 
mv /etc/hosts.allow /etc/hosts.allow.old 
mv /tmp/hosts.allow /etc/hosts.allow 

然后添加新的:

echo $service : `dig +short unix.stackexchange.com` : allow "# My DynDNS Server" >> /etc/hosts.allow 

希望它能帮助!

+0

好思想,但猫/etc/hosts.allow | grep -v“我的DynDNS服务器”> /etc/hosts.allow只是创建一个空白的hosts.allow? – Lurch 2013-03-26 11:22:25

+0

'cat'没用,'grep'可以自己打开文件。重定向到同一个文件是危险的,你可能会丢失整个文件。使用临时文件。 – 2013-03-26 11:23:18

+0

它不应该让它变成空白的,因为我正在为它擦掉一条线,但我已经编辑过,以提供最安全的解决方案。 – ophintor 2013-03-26 11:28:34