我正试图从我的nslookup的下面结果中得到地址
这里我想知道第二个地址是10.0.45.45
Server: 10.152.183.10
Address: 10.152.183.10#53
Name: pg-master-0.pg-master-headless.postgres.svc.cluster.local
Address: 10.1.45.45这是我的密码
MASTER_HOST=$(nslookup pg-master-0.pg-master-headlesss | awk '/^Address:/ {A=$2}; END {print A}');
echo $MASTER_HOST不幸的是,我的输出是:
10.152.183.10#53在这里,我登录到吊舱里

然后往那边跑去查。
发布于 2020-08-03 22:16:36
如果要从nslookup输出中获得第二个"Address:“,只需执行以下操作:
awk '/^Address/{n++; if (n==2){print $2; exit}}'它检查行是否以Address开头,然后递增计数器n++,当n == 2输出第二个字段并退出。
示例使用/输出
使用名为nslookup.txt的文件中的数据,您将收到以下信息:
$ awk '/^Address/{n++; if (n==2){print $2; exit}}' nslookup.txt
10.1.45.45当然,使用nslookup,您只需将输出输送到awk。例如,如果我想在本地子网上使用机器valkyrie的IP,可以使用:
$ nslookup valkyrie | awk '/^Address/{n++; if (n==2){print $2; exit}}'
192.168.6.135仔细考虑一下,如果你还有其他问题,请告诉我。
发布于 2020-08-03 22:24:20
看来nslookup无法解决pg-master-0.pg-master-headlesss问题。您可能在不同的吊舱或您的个人服务器/机器上运行该操作,而这些服务器/机器不知道集群中运行的服务。(您的笔记本电脑在CoreDNS集群中不使用K8s )
为了安全起见,您可以尝试从集群中的pod运行脚本,并使用完整的FQDN:
$ kubectl run -i --tty --rm debug --image=ubuntu --restart=Never -- bash
#
# apt update; apt -y install dnsutils # Installs dnslookup ...
# export MASTER_HOST=$(nslookup pg-master-0.pg-master-headless.postgres.svc.cluster.local | awk '/^Address:/ {A=$2}; END {print A}'); echo $MASTER_HOST"https://stackoverflow.com/questions/63237467
复制相似问题