/etc/hostsに複数行エントリを作成するにはどうすればよいですか?

/etc/hostsに複数行エントリを作成するにはどうすればよいですか?

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です。これは構成管理を通じて行うことができます。

おすすめ記事