各位大神! CENTOS 的 hosts 文件能不能引用附加其他文本? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
jhwangpin
V2EX    Linux

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

  •  
  •   jhwangpin 2020-08-12 08:58:59 +08:00 3357 次点击
    这是一个创建于 1915 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    14 条回复    2020-08-14 09:09:33 +08:00
    Nitroethane
        1
    Nitroethane  
       2020-08-12 09:03:32 +08:00
    你这需求还不如直接搭个 DNS 服务器更方便
    nightwitch
        2
    nightwitch  
       2020-08-12 09:05:09 +08:00
    不可以。可行的方法写个程序,把你的自定义 hosts 追加到现有的 hosts 中,不用了就删掉。你自己追加的这部分可以用一些特定的注释隔开,这样你删掉的话很容易找到哪部分是你自己填加的
    Oceanhime
        3
    Oceanhime  
       2020-08-12 09:10:25 +08:00
    做不到的吧,不如写个同步脚本,定期同步到 /etc/hosts,或者监听文本更改后相应对 /etc/hosts 进行更改。
    可以像 #2 说的用两个注释隔开,一个 start 一个 end,同步脚本只更改注释中间内容,确保安全也为了你如果还要在 /etc/hosts 里加内容。
    Livid
        4
    Livid  
    MOD
    PRO
       2020-08-12 09:14:22 +08:00   1
    试试用 ansible 来管理 /etc/hosts
    encro
        5
    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
        6
    codehz  
       020-08-12 09:28:12 +08:00
    原生 hosts 大概无解了,不过既然都是 glibc 的“受害者”,自然可以用一个 nss 模块来解决,
    大概参考这个(为模板)写一个自定义的 hosts 提供器即可(这玩意根本没实现 readme 里的功能,基本上就是一个模板)
    https://github.com/apetresc/nss-hostslocal
    redial39
        7
    redial39  
       2020-08-12 09:33:56 +08:00
    比较变通的方法是建立一个逻辑意义上的 host.d 文件夹,你可以在里面维护 host,并且可以分散在各个文件,然后用 inotify 去监控这个文件夹,所有增删改都触发 cat * 合并并重写 /etc/host
    goofool
        8
    goofool  
       2020-08-12 09:37:10 +08:00 via Android
    同一个局域网内可以尝试用 mdns
    julyclyde
        9
    julyclyde  
       2020-08-12 09:56:19 +08:00
    如果你有大量 hosts 需要改
    那你的需求肯定是错的
    Aliencn
        10
    Aliencn  
       2020-08-12 10:55:28 +08:00
    我们用数据库维护列表,触发脚本通过 http 下载更新每台机器上的 hosts
    WeeH9T
        11
    WeeH9T  
       2020-08-12 11:12:06 +08:00
    etcd + confd
    ungrown
        12
    ungrown  
       2020-08-12 19:10:16 +08:00
    你可以用 dnsmasq
    支持额外的 hosts 文件
    如果你不了解 dnsmasq 的话,它麻雀虽小功能很多可玩性多面性都不错
    lucifer9
        14
    lucifer9  
       2020-08-14 09:09:33 +08:00
    ldap 吧
    或者 mount --bind ?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2519 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 15:17 PVG 23:17 LAX 07:17 JFK 10:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86