getentコマンド

getentコマンドはLinuxシステムにおいてpasswd, groups, hostsなど様々なデータベースからエントリを取得する。

getentはシステムが参照している実際のソースから情報を取得し、設定ファイルだけでなく、DNS、NIS、LDAPなどの外部ソースにあるデータを直接確認できる。

getent 取得したいデータベース 引数の形式で使用する。

getentコマンドでIPアドレスを調べる

getentコマンドでデータベースにhostsを指定し、getent hosts ホスト名のように実行するとIPアドレスを調べられる。

$ getent hosts www.yahoo.co.jp
182.22.31.124   edge12.g.yimg.jp www.yahoo.co.jp

シェルスクリプトから使う場合

getent hostsコマンドでは行頭にIPアドレスが表示されるので、cutコマンドでIPアドレスだけを取り出す。

$NAME=...
getent hosts $NAME | cut -d ' ' -f 1

複数のIPアドレスがある場合はheadコマンドで1行目だけを取り出すなど工夫が必要となる。

$NAME=...
getent hosts $NAME | cut -d ' ' -f 1 | head -n 1

nslookupとdigが利用できない状況

指定したホストのIPアドレスを調べるにはnslookupdigコマンドが有名だが、必要最低限のツールしかインストールされていない環境など、利用できない状況もある。 そのような場合でもgetentコマンドが使えるサーバは多いので、getent hostsコマンドを使えばIPアドレスを調べるられる。