nslookup 和 awk 获取第二个地址
nslookup and awk get 2nd address
我正在尝试从我的 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=}; END {print A}');
echo $MASTER_HOST
不幸的是,我的输出是:
10.152.183.10#53
我在这里登录了 pod
然后 运行 这样的 nslookup。
如果您想要 nslookup
输出中的第二个“地址:”,您可以简单地执行:
awk '/^Address/{n++; if (n==2){print ; exit}}'
检查该行是否以 Address
开头,然后递增计数器 n++
,当 n == 2
时输出第二个字段并退出。
示例Use/Output
使用名为 nslookup.txt 的文件中的数据,您将收到以下内容:
$ awk '/^Address/{n++; if (n==2){print ; exit}}' nslookup.txt
10.1.45.45
当然,使用 nslookup
,您只需将输出通过管道传输到 awk
。例如,如果我想在我的本地子网上获得机器 valkyrie 的 IP,我会使用:
$ nslookup valkyrie | awk '/^Address/{n++; if (n==2){print ; exit}}'
192.168.6.135
检查一下,如果您还有其他问题,请告诉我。
看起来 nslookup
无法解析 pg-master-0.pg-master-headlesss
。您可能 运行 来自不同 pod 的操作或来自您个人 server/machine 的操作,它们不知道集群中的服务 运行。 (您的笔记本电脑在您的 K8s 集群中没有使用 CoreDNS)
您可以尝试 运行 来自集群中 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=}; END {print A}'); echo $MASTER_HOST"
我正在尝试从我的 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=}; END {print A}');
echo $MASTER_HOST
不幸的是,我的输出是:
10.152.183.10#53
我在这里登录了 pod
如果您想要 nslookup
输出中的第二个“地址:”,您可以简单地执行:
awk '/^Address/{n++; if (n==2){print ; exit}}'
检查该行是否以 Address
开头,然后递增计数器 n++
,当 n == 2
时输出第二个字段并退出。
示例Use/Output
使用名为 nslookup.txt 的文件中的数据,您将收到以下内容:
$ awk '/^Address/{n++; if (n==2){print ; exit}}' nslookup.txt
10.1.45.45
当然,使用 nslookup
,您只需将输出通过管道传输到 awk
。例如,如果我想在我的本地子网上获得机器 valkyrie 的 IP,我会使用:
$ nslookup valkyrie | awk '/^Address/{n++; if (n==2){print ; exit}}'
192.168.6.135
检查一下,如果您还有其他问题,请告诉我。
看起来 nslookup
无法解析 pg-master-0.pg-master-headlesss
。您可能 运行 来自不同 pod 的操作或来自您个人 server/machine 的操作,它们不知道集群中的服务 运行。 (您的笔记本电脑在您的 K8s 集群中没有使用 CoreDNS)
您可以尝试 运行 来自集群中 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=}; END {print A}'); echo $MASTER_HOST"