问题描述
我有一个用于 MongoDB 复制的有状态集,我需要通过服务端点获取 pod 的所有主机名。我能够获取名称但不完全是唯一的主机名列表。
$ dig srv mongodb +search +short
0 100 27017 mongodb-0.mongodb.pilot-bots.svc.cluster.local.
这里有我想排除的额外内容 0 100 27017
。
我怎样才能只得到名字?像下面的IPS。
$ dig mongodb A +search +short
172.1.0.220
解决方法
@anemyte 用他的 awk
提供了一个有效的解决方案:
dig srv mongodb +search +short | awk '{print $4}'
但是,您也可以从不同的方式来解决这个问题。 Dig 有几个可以调整的选项,以便仅打印您想要的信息作为输出。 This guide 更详细地解释了这种方法:
Get a not-quite-so-short answer?
请注意,简短的回答与仅回答不同。的方式
得到一个详细的答案,但没有任何辅助信息,就是
关闭所有结果 (+noall
) 然后只打开那些
您想要的部分。
这是一个简短的答案,后面只有一个答案;后者包括 所有配置信息,包括生存时间 (TTL) 数据, 以与 BIND 配置文件兼容的格式显示。
使用 +noall
后跟您选择的其他选项将导致仅显示您感兴趣的那些记录。您也可以只隐藏不想打印的记录,例如,使用 +nottlid
选项隐藏 TTL。