【问题标题】:How to temporarily add more DNS search paths to bash script in Linux [closed]如何在 Linux 中临时向 bash 脚本添加更多 DNS 搜索路径 [关闭]
【发布时间】:2014-09-17 10:44:12
【问题描述】:

我正在编写一个 Bash 脚本,其中包含一个仅通过短名称查找某些主机名的模块。问题是我正在开发一个与大约 20 个不同环境通信的管理框。我只能在盒子本身上定义这么多的 DNS 搜索路径(我认为是 7 个),所以我想知道是否有一种方法可以在我的脚本开头临时设置一个环境变量来添加剩余的 13 个搜索路径?

【问题讨论】:

  • 脚本看起来如何?您还指的是resolv.conf 中的search 选项吗?
  • 是的,我指的是resolv.conf的限制。脚本的组成部分是我检查特定主机名是否已在 DNS 中注册,但我只有短名称。所以我会运行host $1 之类的东西来检查它,但现在它只适用于resolv.conf 中定义的域
  • 那为什么不附加所有可能的域并尝试它们呢?
  • 您的意思是将它们附加到resolv.conf 中吗?据我了解,RedHat 只检查其中的前 6 个项目,所以我是否附加所有项目都没关系。不过,我可能是错的,这就是我试图在问题中解决的问题
  • for hostname in hostnames; do for domain in domains; do host ${hostname}.${domain}; done; done

标签: linux bash dns


【解决方案1】:
for hostname in $hostnames; do
    for domain in $domains; do
        host ${hostname}.${domain}
        # check the result of the command
    done
done

如果您将for domain in $domains 替换为for domain in $domains '',它也会在根域(.)下进行搜索。如果您的列表中有完全限定的主机名(例如 www.example.net),这将很有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-27
    • 2013-12-02
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    相关资源
    最近更新 更多