【发布时间】:2018-08-20 15:30:14
【问题描述】:
添加新实例时,我的 DNS 记录中有重复项。如果找到新的实例 IP,我的目标是使用“nsupdate”能够通过 IP 删除 A 记录。这就是我所做的。但是,运行此脚本时它没有删除任何重复项。最好的走走是什么?
domain=${domainname}
nodename=(hostname | awk -F. '{print $1}')
local_ip=$(ifconfig eth0 | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1')
nslookup ${local_ip} | grep SERVFAIL
if [[ $? < 0 ]] ; then
echo "Record already exists"
echo -e "update ${local_ip} IN A"
else
echo "creating forward Record: ${codename}.${domain}"
echo -e "update add ${nodename}.${domain} 3600 A ${local_ip}\nsend" | nsupdate -g
fi
【问题讨论】:
-
您的代码中似乎有几个拼写错误以及逻辑上的不一致。例如,在更新时,您不会在第 7 行通过管道将您的命令传递给
nsupdate -
FWIW,你的很多问题都可以通过简单的校对来解决。
-
“这是我做的。请帮忙” - 请帮忙做什么?您没有说明问题或错误。 (以及 +1 用于询问与编程和开发有关的 Bash 问题)。
-
我说明了问题。你能读一下我的脚本打算实现的目标吗?
标签: linux bash scripting dns system-administration