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アドレスを調べるにはnslookup
やdig
コマンドが有名だが、必要最低限のツールしかインストールされていない環境など、利用できない状況もある。
そのような場合でもgetent
コマンドが使えるサーバは多いので、getent hosts
コマンドを使えばIPアドレスを調べるられる。
\第一線のプログラマーの行動原理を学べる!/