スポンサーリンク

RWHOD(8) FreeBSD システム管理者マニュアル RWHOD(8)

名称

rwhod − システムステータスサーバ

書式

rwhod [−i] [−p] [−l] [−m [ttl]]

解説

rwhod ユーティリティは、 rwho(1)ruptime(1) プログラムで使われるデータ ベースを管理するサーバです。ネットワークにおいて ブロードキャストもしくは マルチキャストメッセージが使用できることが前提となります。

rwhod ユーティリティはステータス情報の生成と利用の両方を行います。ただ し、 −l (listen モード) オプションを指定した場合は例外で、利用のみ行いま す。情報の生成では、定期的にシステムに状態を問い合わせ、ステータスメッ セージを構築してネットワークにブロードキャストします。情報の利用では、他 の rwhod サーバからの状態メッセージを受け取り、検査してから、 /var/rwho ディレクトリの下のファイルに記録します。

次のオプションが使用可能です:

       −i

オプションは、安全ではないモードを有効にします。このモードでは、 rwhod は入力パケットのソースポートを無視します。

−p
すべての POINTOPOINT インタフェースを無視させます。要求時にダイヤ ルするインタフェースを常に活動状態にしたくない場合に有用です。

−l
listen モードが有効になり、 rwhod は情報をブロードキャストしなく なります。これにより、自分自身の情報をブロードキャストせずに他の マシンの rwhod 情報を監視することができます。

−m [ttl]
インタフェースの "ifnet" 構造体に IFF_MULTICAST フラグが設定され ている全てのインタフェース (ループバックインタフェースは除きます) 上で、 rwhod に (ブロードキャストの代わりに) IP マルチキャストを 使わせます。マルチキャストによる報告は、直接つながっているサブ ネットへの転送を防ぐために TTL(Time To Live) 1で送られます。

オプションの ttl 引数が −m フラグとともに与えられた時には、 rwhod は IP マルチキャストデータグラムを TTL が ttl として、全てのイン タフェースではなく 1 つのインタフェースに対して送ります。 ttl は 0 から 32 (または、MAX_MULTICAST_SCOPE) までの値です。 −m 1 は、 −m とは異なることに注意してください。 −m 1 は、1 つのインタフェー スにだけ転送を行います。

−m フラグが、 ttl 引数無しで使われた場合、プログラムはマルチキャ スト rwhod 報告を全てのマルチキャストが利用可能なインタフェースか ら受け取ります。 ttl 引数が与えられた場合は、マルチキャストレポー トは 1 つのインタフェースからだけ受け取ります。その 1 つは、報告 を行っているものです (これは、ホストルーティング表によって制御さ れます)。 −m オプションに関係なく、プログラムはブロードキャストも しくはユニキャストによる報告を全てのインタフェースから受け取りま す。したがって、このプログラムは、マルチキャストを使っていない古 い rwhod から報告を受け取りますが、マルチキャストが使われている場 合には古い rwhod はこのプログラムによって生成される報告を受け取れ ないことになります。

サーバは、‘‘who’’ サービスで指定されているポート番号でメッセージを送受信 します。 services(5) を参照して下さい。送受信するメッセージは以下のような 形式です。

struct outmp {

char out_line[8]; /* 端末 (tty) 名 */

char out_name[8]; /* ユーザID */

long out_time; /* 時刻 */

};

struct whod {

char wd_vers;

char wd_type;

char wd_fill[2];

int wd_sendtime;

int wd_recvtime;

char wd_hostname[32];

int wd_loadav[3];

int wd_boottime;

struct whoent {

struct outmp we_utmp;

int we_idle;

} wd_we[1024 / sizeof (struct whoent)];

};

すべてのフィールドは、送信に先立ってネットワークバイトオーダに変換されま す。ホスト負荷 (load average) は w(1) によって計算され、送信の 5, 10, 15 分前の負荷を 100 倍した整数として表現されます。ホスト名は、 gethostname(3) システムコールで得られたものがドメイン名を省略して格納され ます。メッセージの最後の配列には、メッセージを送信したマシンにログインし ているユーザの情報が格納されています。この情報は、 utmp(5) の非アイドルの 端末ラインのエントリと、その端末ラインから最後に文字を受け取った時間を秒 数で表した値が入っています。

rwhod サーバによって受信されるメッセージは、 rwhod サーバのポートから送信 されたものでないか、 −i オプションが指定されていなければ捨てられます。さ らにメッセージのホストの名前が表示できない ASCII 文字を含んでいる場合も、 メッセージは捨てられます。 rwhod が受け取った正しいメッセージは /var/rwho ディレクトリに whod.hostname というファイル名で格納されます。これらのファ イルには、最新のメッセージだけが、上で説明した形式で残っています。

ステータスメッセージはほぼ 3 分ごとに作成されます。 rwhod ユーティリティ は、30 分ごとに /boot/kernel/kernel に対して nlist(3) を実行します。これ は、このファイルがその時点での実際のシステムイメージであることを確認する ためです。

関連項目

ruptime(1), rwho(1)

バグ

ネットワーク間でステータス情報を中継する方法が必要です。ステータス情報 は、ずっと送りつづけるのではなく、要求があったときにだけ送るようにするべ きでしょう。サーバが死んでいたり、ネットワークの通信障害を、マシンがダウ ンしていると思い込んでしまう場合がよくあります。

歴史

rwhod ユーティリティは 4.2BSD で登場しました。

FreeBSD 10.0 December 11, 1993 FreeBSD 10.0

スポンサーリンク