Bash 将主机的ip添加到hosts.allow

Bash 将主机的ip添加到hosts.allow,bash,cron,Bash,Cron,我使用具有动态ip和dyndns的机器来管理其他远程机器。我希望远程机器能够检查dyndns主机名ie的ip dig +short unix.stackexchange.com 并将生成的ip添加到hosts.allow中的一行末尾,这样我可以每24小时运行一次bash脚本。这里的主要挑战是确保您也删除了前一个ip,因此我会在hosts.allow中添加某种标志以及您的ip。类似于“我的DynDNS服务器”。因此,在脚本中,您应该首先删除标记行(确保没有其他行包含此!!): 然后添加新的: e

我使用具有动态ip和dyndns的机器来管理其他远程机器。我希望远程机器能够检查dyndns主机名ie的ip

dig +short unix.stackexchange.com

并将生成的ip添加到hosts.allow中的一行末尾,这样我可以每24小时运行一次bash脚本。

这里的主要挑战是确保您也删除了前一个ip,因此我会在hosts.allow中添加某种标志以及您的ip。类似于“我的DynDNS服务器”。因此,在脚本中,您应该首先删除标记行(确保没有其他行包含此!!):

然后添加新的:

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

希望有帮助

不要
hosts.allow
接受DNS名称。不适用于dyndnsOh您是对的,需要反向DNS条目。想法不错,但是cat/etc/hosts.allow | grep-v“My DynDNS Server”>/etc/hosts.allow只创建一个空主机。allow?
cat
没有用,
grep
可以自己打开文件。从/到同一文件的重定向是危险的,可能会丢失整个文件。使用一个临时文件。它不应该使它为空,因为我把它的一行变灰了,但我已经编辑了,以提供一个最安全的解决方案。我们正在接近,但它将ip添加到一个新的行上,它需要在第14行的末尾开始sshd:ip,ip,ip,ip,ip,ip,可以使用它在行的末尾放一个\。谢谢大家的hrlp
echo $service : `dig +short unix.stackexchange.com` : allow "# My DynDNS Server" >> /etc/hosts.allow