2013-03-26 79 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