おまけ:サーバー管理者の7つ道具(UNIX編)

新米のサーバー管理者が最初に直面すると思われる困難は、おそらくトラブルの対処 だと思われます。「メールサーバーを構築したいのに、どうやってもメールが受け取れ ない」「ウェブが突然見れなくなった」など、さまざまなトラブルが襲いかかります。 その際に強力な道具となるコマンドを紹介したいと思います。

ここでは大きく2タイプに分けて紹介します。一つはネットワークの状態を調査するもの、もう一つはサーバーの稼働状況を調べるものです。

ネットワーク調査用ツール

ping
ネットワークがおかしいと思ったらまずこのコマンドです。調査したいホストに対して
ping (ホスト名またはIPアドレス) 
を実行すると、相手ホストに対してパケットを送り、反応が帰ってくるかどうかを 調べます。このパケットはICMPというプロトコルのパケットで、大抵のホストが 応答するようになっているので、相手のホストが落ちているかどうかが大体判り ます。(例外はあります)
ちなみに、DNSが頼りにならない状況では、
ping -n (IPアドレス) 
と-nオプションをつけて実行すると、DNSを参照しなくなるので少し幸せになります。詳しくはman pingを見てね。
traceroute
ネットワーク越しの通信トラブルが起きた場合、対象ホストへの経路上のルーターに 異常が調べます。
traceroute  (ホスト名またはIPアドレス) 
試しに、普段アクセスしているサーバーに対してtracerouteを掛けてみると、 どれだけルーターを経由しているのかが判り、面白いかもしれません。
nslookup
DNSが正常に動いているかを調査します。
nslookup (ホスト名またはIPアドレス) 
ホスト名を指定した場合はIPアドレスが(正引き)、IPアドレスを指定した場合はホスト名が(逆引き)帰ってきます。
また、普段使っている以外のDNSサーバーに対して調査したい場合は
nslookup (ホスト名またはIPアドレス) (DNSサーバーのホスト名またはIPアドレス)
です。
telnet
マシンを遠隔操作するコマンド……というだけではありません。
telnet (ホスト名) (ポート番号またはプロトコル名)
とすることで、相手ホスト上でプロトコルが動いているかを調べることもできます。 例えば、
telnet localhost smtp
とすると、localhostでsmtpが動いているか確認 できます。さらに、SMTPのコマンドを入力してやれば、そのままメールを送って しまうことも出来ます。普段メーラーがどんなことをやっているのかを知るために、 一度は試してみることをお薦めします。

サーバー稼動状況調査用ツール

ps
マシン上で動いているプロセスを見ます。デーモン(サーバープログラム)が 確かに起動しているかどうかを確認してみるために利用します。
オプションなしだと自分のプロセスしか見れません。デーモンが普通のユーザーで 動いていることはありえないので、 linuxならば
ps -ef
FreeBSDなど、BSD系列のOSならば
ps -aux
を指定する必要があります。
netstat
ネットワークに関するさまざまな情報を得ることができます。 オプションによって振る舞いが変わりますが、そのうち代表的な2つを紹介します。
netstat -r
ルーティングテーブルを示します。サーバーをルーターとしても利用している場合は 必要不可欠なコマンドです。
netstat -a
応答可能なソケットを表示します。サービスしているポートが開いているか、 サービスしていないはずのポートが開いていないかをチェックします。
ifconfig
ネットワークインターフェースに関する情報(IPアドレス・ネットマスク・ MACアドレス)を得ることができます。
また、インターフェースにIPアドレスやネットマスクを設定することも できます。例えば
ifconfig eth0 192.168.0.2 netmask 255.255.255.0 
のように。 実際、OSの起動時にはifconfigコマンドを利用してインターフェースにIPアドレスを 割り当てています。

目次

yossy@hodogaya.org