各位大神! CENTOS 的 hosts 文件能不能引用附加其他文本?

2020-08-12 08:58:59 +08:00
 jhwangpin

问下各位有没有办法能够实现 linux 下 /etc/hosts 能够引用别的文件,比如我有个主机 IP 映射的文本,需要映射到 /etc/hosts 下,不然每次去维护 /etc/hosts 很麻烦。因为每台 host 不一样的。

2653 次点击
所在节点    Linux
14 条回复
Nitroethane
2020-08-12 09:03:32 +08:00
你这需求还不如直接搭个 DNS 服务器更方便
nightwitch
2020-08-12 09:05:09 +08:00
不可以。可行的方法写个程序,把你的自定义 hosts 追加到现有的 hosts 中,不用了就删掉。你自己追加的这部分可以用一些特定的注释隔开,这样你删掉的话很容易找到哪部分是你自己填加的
Oceanhime
2020-08-12 09:10:25 +08:00
做不到的吧,不如写个同步脚本,定期同步到 /etc/hosts,或者监听文本更改后相应对 /etc/hosts 进行更改。
可以像 #2 说的用两个注释隔开,一个 start 一个 end,同步脚本只更改注释中间内容,确保安全也为了你如果还要在 /etc/hosts 里加内容。
Livid
2020-08-12 09:14:22 +08:00
试试用 ansible 来管理 /etc/hosts
encro
2020-08-12 09:18:00 +08:00
简单说是不可以,以下是变通方案:

1,

https://superuser.com/questions/128932/is-there-a-way-to-include-a-separate-file-in-etc-hosts

Keep a hosts.base file and then write a simple script to build a complete, combined hosts file with that hosts.base file and the other files you want to include. You can cron it or execute on demand.


2,
dns

3,
pssh, ansible 等运维工具
codehz
2020-08-12 09:28:12 +08:00
原生 hosts 大概无解了,不过既然都是 glibc 的“受害者”,自然可以用一个 nss 模块来解决,
大概参考这个(为模板)写一个自定义的 hosts 提供器即可(这玩意根本没实现 readme 里的功能,基本上就是一个模板)
https://github.com/apetresc/nss-hostslocal
redial39
2020-08-12 09:33:56 +08:00
比较变通的方法是建立一个逻辑意义上的 host.d 文件夹,你可以在里面维护 host,并且可以分散在各个文件,然后用 inotify 去监控这个文件夹,所有增删改都触发 cat * 合并并重写 /etc/host
goofool
2020-08-12 09:37:10 +08:00
同一个局域网内可以尝试用 mdns
julyclyde
2020-08-12 09:56:19 +08:00
如果你有大量 hosts 需要改
那你的需求肯定是错的
Aliencn
2020-08-12 10:55:28 +08:00
我们用数据库维护列表,触发脚本通过 http 下载更新每台机器上的 hosts
hambut
2020-08-12 11:12:06 +08:00
etcd + confd
ungrown
2020-08-12 19:10:16 +08:00
你可以用 dnsmasq
支持额外的 hosts 文件
如果你不了解 dnsmasq 的话,它麻雀虽小功能很多可玩性多面性都不错
nadoo
2020-08-12 23:00:36 +08:00
dns server 是比较好的选择,dnsmasq 很好用
lucifer9
2020-08-14 09:09:33 +08:00
ldap 吧
或者 mount --bind ?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/697558

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX