RWHOD(8) | FreeBSD System Manager's Manual | RWHOD(8) |
名称
rwhod — システム状態 (ステータス) サーバ書式
rwhod | [ -i][ -p][ -l][ -m [ ttl]] |
解説
rwhod ユーティリティは、 rwho(1) と ruptime(1) プログラムによって使用されるデータベースを保守するサーバです。その操作は、ネットワークでメッセージを ブロードキャスト (同報通信) または マルチキャスト する能力に基づいています。消費者としてのみ動作する -l (listen モード) オプションが指定されないなら、 rwhod ユーティリティは、状態 (ステータス) 情報の生成者と消費者の両方として動作します。情報の生成者の場合、定期的にシステムの状態を問い合わせ、ネットワークにブロードキャストされるか、またはマルチキャストされる状態メッセージを構築します。情報の消費者の場合、他の rwhod サーバの状態メッセージを listen (接続を受け付け) して、それらを確認して、次に、ディレクトリ /var/rwho にあるファイルの集まりに、それらを記録します。
次のオプションが利用可能です:
- -i
- rwhod が、着信パケットで発信元のポートを無視する、不安定な (insecure) モードを有効にします。
- -p
- すべての POINTOPOINT インタフェースを無視します。これは、デマンドインタフェースでダイヤルを永久に活性化を保持したいなら、役に立ちます。
- -l
- rwhod が、あらゆる情報をブロードキャストしない、 listen (接続を受け付け) モードを有効にします。これによって、利用者は、利用者自身にブロードキャストせずに、他のマシンの rwhod 情報を監視することができます。
- -m [ ttl]
-
rwhod は、 (ループバックインタフェース以外の) "ifnet"構造体に IFF_MULTICAST フラグの設定があるすべてのインタフェース上で (ブロードキャストの代わりに) IP マルチキャストを使用します。マルチキャストの報告は、直接接続されている (複数の) サブネットを越える転送を防ぐために、1 の有効期限 (TTL) で送信されます。
オプションの ttl 引数が -m フラグとともに供給されるなら、 rwhod は、すべてのインタフェースではなく "単一の"インタフェース経由で、 ttl の有効期限 (TTL) で IP マルチキャストのデータグラムを送信します。 ttl は、0 と 32 (または MAX_MULTICAST_SCOPE) の間でなければなりません。 -m 1 が 1 つのインタフェースでのみ送信を指定するという点において、 -m 1 は、 -m と異なることに注意してください。
-m が ttl 引数なしで使用されるとき、プログラムは、すべてのマルチキャスト対応のインタフェースからマルチキャストの rwhod 報告を受け付けます。 ttl 引数が与えられるなら、(ホストの経路表によって制御される) 報告が送られる、ただ 1 つのインタフェースからマルチキャストの報告を受け付けます。 -m オプションにかかわらず、プログラムは、すべてのインタフェースからブロードキャストまたはユニキャスト (unicast) の報告を受け付けます。したがって、このプログラムは、旧、マルチキャストを行わない 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) システムコールによって返されたものです。メッセージの終りの配列は、送信するマシンにログインされたユーザに関する情報を含んでいます。この情報は、アイドルでない端末ラインのそれぞれに対するユーザのアカウントのデータベースのエントリの内容と文字が端末ラインで最後に受信された以降の秒単位の時間を示す値を含んでいます。
rwho サーバによって受信されたメッセージは、それらが、 rwho サーバのポートから発信されていないか、または -i オプションが指定されなかったならば、廃棄されます。さらに、メッセージで指定されるホストの名前が、何らかの印刷不可能な ASCII 文字を含んでいるなら、メッセージは、廃棄されます。 rwhod によって受信された有効なメッセージは、ディレクトリ /var/rwho の whod.hostname で指定されたファイルに置かれます。これらのファイルは、上記に説明された形式で、最も最近のメッセージだけを含んでいます。
状態メッセージは、ほぼ 3 分ごと生成されます。 rwhod ユーティリティは、このファイルが現在動作しているシステムイメージでない可能性を警戒するために、30 分ごとに /boot/kernel/kernel で nlist(3) を実行します。
歴史
rwhod ユーティリティは、 4.2BSD で登場しました。バグ
状態情報は、連続的ではなく、要求でのみ送信されるべきです。人々は、死んでいるサーバ、またはダウンしているマシンとしてネットワーク通信の失敗としばしば解釈します。January 21, 2010 | FreeBSD |