我们遇到的情况是,一个 IP 地址有许多别名,并且这些别名需要在/etc/hosts
.我希望能够继续在下一行列出别名,而不是用非常长的行包含 IP 地址的所有别名,以便我可以保持格式并保持文件可读。
我无法找到任何有关如何实现此目标的文档。
例如:
# in /etc/hosts
10.11.11.11 alias1.localhost alias1 \
alias2.localhost alias2 \
alias3.localhost alias3 \
alias4.localhost alias4
这会导致第一行被处理,但后续行都不会:
$ python -c "import socket; print(socket.gethostbyname('alias1'))"
10.11.11.11
$ python -c "import socket; print(socket.gethostbyname('alias2'))"
Traceback (most recent call last):
File "<string>", line 1, in <module>
socket.gaierror: [Errno -2] Name or service not known
我已经尝试过各种格式,包括删除反斜杠,但似乎没有任何效果。
我们使用的是 Ubuntu 16.04。
这可能吗?
答案1
不完全是,不。从周围挖掘glibc 源代码寻找/etc/hosts
然后寻找_PATH_HOSTS
一个可能遇到_gethtent
似乎没有与\
处理相关的代码。
如果您确实想要此功能,则需要修补libc
,这可能不是最好的主意。
更好的想法可能是模板化/etc/hosts
,以便用于构建文件的源可以根据您的需要进行格式化,然后模板化/etc/hosts
包含必要的长行。这可以通过配置管理来完成。