invscoutd コマンド

目的

永久インベントリー・スカウト (Inventory Scout) サーバー・デーモンを起動します。

構文

invscoutd [ -o] [ -p Portno ] [ -b Bufsize ] [ -d maxcatsize ] [ -t Timeout ] [ -v Verblev ]

説明

invscoutd コマンドは、ユーザーのローカル・ネットワーク内の 1 つのマシン上に永続インベントリー・スカウト・サーバー・デーモンを実装します。 通常のクライアントはユーザーの Web ブラウザーで実行される Java アプレットであり、中央インベントリー・スカウト CGI アプリケーションからダウンロードされたものです。

デーモンの初期化処理には、コマンド・ライン・オプションと、インベントリー・スカウトの関係のローカル・ファイルを読むことが関係しています。 操作状態になった時点では、各クライアント/サーバー・トランザクションごとに、事前割り当てソケットからテキスト・ストリングを読んだり、同じソケットによってテキスト・レポートを戻したりすることが関係しています。

デーモンは、デーモンのアクションのレコードをログ・ファイルに保持します。指定された冗長レベルに応じて違いますが、ログの行に含まれる可能性がある情報には、 起動バナーとシャットダウン・バナー、呼び出しごとのトレース、詳細な内部プログラム・トレース、およびエラー・ステートメントがあります。 指定された冗長レベルによっては、起動バナーが stderr に書き込まれることもあります。

プロトコル

デーモンのソケットとのクライアント接続には、インターネット TCP/IP プロトコルを使用します。 1 つのトランザクションの中では、呼び出し側クライアント・アプレットが、URL エンコード・テキスト・ストリングなどのアクション要求をサーバー・デーモンに送ります。 その要求は、任意の ASCII 制御文字 (x00 から x1F) によってなされ、それがその要求の処理のトリガーとなります。

要求によっては、クライアントが付加的なデータを渡すことが必要です。そのような場合、その付加データは、アクション要求で指定されている長さ分の終了バイトの直後に置かれます。

1 つの例外 (ACTION=PING) を除き、サーバー・デーモンは、疑似 MIME 形式のテキスト・レポートを、同じソケット接続によって書き戻します。エラー結果についても、疑似 MIME 形式が使用されます。 このデーモンは、ソケットをクローズすることによって、戻されるテキストとトランザクション自体とを終了し、その結果としてファイル終わり (EOF) 指示が呼び出し側クライアントに送られます。 クライアント側では、EOF を受け取ったなら、直ちに接続の自分の側のソケットをクローズしなければなりません。

URL エンコード・メッセージ

アクション要求文字列は、標準的な URL エンコード文字列です。例:
"ACTION=actionword&NAME1=value1&NAME2&NAME3=word%xx+word+word¥0"
サポートされるフィールド名および値
名前 意味/用途 サポートされる値
ACTION 後述のアクション要求テーブルを参照してください。 サポートされる値のリストは、アクション要求テーブルの左端の列によって構成されます。
MRDM クライアントが、この情報を使用/要求する ACTION の (平文) パスワード を指定できるようにします。 この値については、大文字小文字が区別されます。 任意の ASCII 文字列 (大文字小文字を区別する)。
DATALEN この名前が存在している必要があるのは、ACTION 文字列終 端バイトの直後に追加バイナリー・データが続いている場合であり、この名前が 存在する必要がないのは、この終端バイトに追加データが続いていない場合です。 指定された整数値は、追加データのバイト数を指定します。 クライアントがこれより多くのデータを書き込もうとした場合、アクションが DATALEN パラメーターを受け入れず付加データがあってもそれを破棄する場合、 またはアクション・プロセッサーで初期エラーが検出された場合、このデーモンは、未完了のままクライアントとサーバーの間のソケット・パイプをクローズすることがあります。 あるトランザクションで n が特定の最大値を超えている場合、直ちにエラー・コードが 戻されます (-d コマンド・ライン・オプションを参照)。 -d コマンド・ライン・オプションの有無による暗黙的な 値までの整数。
CLIENT クライアントが、この情報を使用/要求する ACTION を独自に 識別できるようにします。 HMC 値は、インベントリー・スカウトに、HSC インベントリー・スカウト・ マスターの制御下でのみ許可される特定のアクションの許可を指示します。
MODEL クライアントが、この情報を使用または要求する VPD 調査のためにサーバーの モデル番号をサーバーに通知できるようにします。 25 文字までの ASCII 文字列 (一部のマシンについては 制約があります)。
SERIAL クライアントが、この情報を使用または要求する VPD 調査のためにサーバーの シリアル番号をサーバーに通知できるようにします。 25 文字までの ASCII 文字列 (一部のマシンについては 制約があります)。
注:
  1. フィールド名とその値との間は、等号 (=) で区切ります。
  2. Name=Value の組と組の間は、& 文字で区切ります。
  3. Name フィールドでは、どんな場合でも大文字小文字が区別されません。
  4. Value フィールドでは、特にドキュメントに示されているのでない限り、大文字小文字が区別されません。
  5. ACTION=keyword の組は、常に存在しなければなりません。
  6. & 記号と & 記号の間の文字列に等号が含まれていない場合、それは値が空の名前 (Name) であると解析されます。
  7. スペース文字を入力したい場合は、その代わりに + (正符号) を入力します。
  8. バイナリー文字は、% 記号の後にちょうど 2 桁の 16 進数を指定したエスケープ・シーケンス (%xx) としてコーディングします。 そのようなエスケープ・シーケンスは、&、= (等号)、+ (正符号) などの URL メタキャラクターを 値 (Value) 内にコーディングする場合にも使用する必要があります。
  9. 制御文字終了バイトは、常にクライアント側で送信する必要があります。
アクション要求
アクション MRDM 説明
PING 不要 デーモンは、ソケットを直ちに クローズし、クライアント側では直後が EOF になります。 これは、結果コードもなんらかのテキストも戻さない唯一のアクションです。
例:
"action=ping¥0"

<EOF>
ECHO 不要 デーモンは、解析前の元の要求文字列で構成されるテキスト・レポートに続いて、改行を戻します。 パスワード (MRDM) は必須ではありませんが、含まれていた場合には、他のデータと共にそのままエコー出力されます。 付加データ (DATALEN) は必須ではありませんが、含まれていた場合には、要求文字列の後にそのままエコー出力されます。 ECHO 要求の場合、DATALEN は特に警告が出されることなく最大 2000 バイトで切り捨てられます。
例:
"action=ECHO&MRDM=xyz&datalen=5¥0abcde"

"RESULT=0¥n"
"¥n"
"action=ECHO&MRDM=xyz&datalen=5¥n"
"abcde"<EOF>
URLDECODE 不要 デーモンは、解析後の要求文字列のテキスト・レポート、および それに続くデータの正確なコピーを戻します。 パスワード (MRDM) は必須ではありませんが、含まれていた場合には、構文解析されて戻されます。 追加データ (DATALEN) は必須ではありませんが、含まれていた場合には、構文解析されて戻されます。 しかし、要求文字列の後の実際の追加データは廃棄されます。 レポートのうち番号の付いている各行は、元の文字列のうちの 1 つの Name=Value の組の構文解析結果を示しています。
例:
"action=UrlDecode&subaction=xyz¥0"
 

"RESULT=0¥n"
"¥n"
"  0: ACTION       UrlDecode¥n"
"  1: SUBACTION    xyz¥n"
<EOF>
TESTPWD 必須 MRDM パスワードが有効なら、デーモンは RESULT=0 を戻します。 そうでない場合には、RESULT=2 を返します。付加データ (DATALEN) は受け入れられず、それがある場合には廃棄されます。
例:
"ACTION=TESTPWD&MRDM=thepassword¥0"
 
"RESULT=0¥n"
"¥n"
<EOF>
VERSIONS 不要 デーモンは、インベントリー・スカウト自体の 現行バージョン番号を報告します。 付加データ (DATALEN) は受け入れられず、もしあればそれは廃棄されます。
例:
"ACTION=VERSIONS¥0"
 
"RESULT=0¥n"
"¥n"
"1.2.3.4¥n"
"5.6.7.8¥n"
<EOF>
CATALOG 必須 デーモンはスカウトのマイクロコード・カタログを、渡されたファイル・データで更新します。 パスワードとデータ長パラメーターの両方が要求文字列に含まれている必要があります。 デーモンは、必ずしもこのアクションを root として実行する必要はありませんが、 このデーモンは /var/adm/invscout/microcode/catalog.mic へのファイル書き込み許可を持っている必要があります。
例:
"ACTION=CATALOG&MRDM=xyz&DATALEN=17042¥0"
"...17042 bytes of ascii data..."

"RESULT=0¥n"
"¥n"
<EOF>
MCODES 必須 デーモンは、マイクロコード調査オプションを実行します。 付加データ (DATALEN) は受け入れられず、もしあればそれは廃棄されます。 例:
"ACTION=MCODES&MRDM=xyz¥0"
 
"RESULT=0¥n"
"¥n"
"Report Line 1¥n"
"Report Line 2¥n"
    :
    :
"Report Line N¥n"
<EOF>
VPDS 必須 デーモンは、VPD 調査オプションを実行します。 付加データ (DATALEN) は受け入れられず、もしあればそれは廃棄されます。
例:
"ACTION=VPDS&MRDM=xyz¥0"
 
"RESULT=0¥n"
"¥n"
"Report Line 1¥n"
"Report Line 2¥n"
    :
    :
"Report Line N¥n"
<EOF>

結果

デーモンは、疑似 MIME 形式のテキストによる結果を戻します。 1 つの行データ自体に対して、1 つ以上の Name=Value の組からなるヘッダーを戻します。 Name=Value の最初の組は常に結果コードであり、その形式は RESULT=number です。 結果コードは、PING アクションを除くすべてのアクションにおいて常に戻されます。

以下の情報には、 Java アプレット・クライアントだけに適用される内部スカウト結果コードについては記述されていません。

結果コードによっては、ヘッダー行の後にオプションのフリー・フォーム・テキストがあります。 フリー・フォーム・テキスト・レポートがある場合、その前にあるヘッダーは空行 (連続する 2 つの改行など) によって終了します。

どのイベントでも、結果レポートは、レポート・テキストの最後をソケットから読んだ後、EOF インジケーターで終了します。 EOF は、トランザクション自体の終了も意味しています。

結果コード
結果 説明
0 完全に成功。
1 メモリー割り当てエラーのためにデーモンは異常終了しました。 これは、親サーバー・デーモンか、またはサービス子デーモンの 1 つのいずれかで発生する可能性があります。
2 必須パスワード (MRDM=password) が欠落しているか無効であるため、サービス子デーモンが異常終了しました。
3 アクション名とその値の組 (ACTION=keyword) が欠落しているか無効であるため、サービス子デーモンが異常終了しました。
4 サービス子デーモンがそのユーザー ID を invscout にリセットできなかったため、そのサービス子デーモンが異常終了しました。
21 ソケット入力バッファーのオーバーフローのため、サービス子デーモンが異常終了しました。結果のうちテキスト・レポート部分は、デフォルト言語によるエラー・メッセージです。 クライアントは、要求文字列の長さを小さくするか、または、デーモンを kill した後、バッファー・サイズをもっと大きくしてから再開しなければなりません。
22 ソケット読み取りエラーのため、サービス子デーモンが異常終了しました。 結果のうちテキスト・レポート部分は、デフォルト言語によるエラー・メッセージ (システムの入出力 errno 文字列を含む) です。 ログ・ファイル (logfile) エントリーにも、システムの errno 文字列が含められます。
23 ソケット読み取りタイムアウトのため、サービス子デーモンが異常終了しました。結果のうちテキスト・レポート部分は、デフォルト言語によるエラー・メッセージです。 クライアント側は、要求文字列終了後に制御文字終了バイトを送る必要があり、常に DATALEN パラメーターに指定されているのと同じバイト数のデータを送る必要があります。 タイムアウト期間は、-t コマンド・ライン引数によって変更できます。
24 要求文字列読み取り中に予期しない EOF があったため、サービス子デーモンが異常終了しました。 結果のうちテキスト・レポート部分は、デフォルト言語によるエラー・メッセージです。 クライアント側は、ソケット接続をクローズする前に、要求文字列終了後に終了バイトを送る必要があります。
25 DATALEN パラメーターが必要なアクションで DATALEN パラメーターが欠落しているか無効であるため、サービス子デーモンが異常終了しました。 結果のうちテキスト・レポート部分は、デフォルト言語によるエラー・メッセージです。 付加的なバイナリー・データを渡すアクションでは、クライアントは URL エンコード要求文字列の後にデータの長さを送る必要があります。 また、そのようなアクションのうちの多くでは、DATALEN の値が特定の最大サイズ以下に制限されています。
26 権限エラーやディスク・スペース不足など、一般的なファイル入出力エラーのため、サービス子デーモンが異常終了しました。 結果のうちテキスト・レポート部分は、デフォルト言語によるエラー・メッセージです。 ほとんどの場合、サーバー・マシン側で入出力の問題が解決してからでなければ、クライアントがアクションを再試行することはできません。
27 バージョン番号が必要なアクティビティーにおいて、サービス子デーモンがそれを取り出すことができなかったため、そのサービス子デーモンが異常終了しました。

フラグ

ハイフン (-) で始まる引数を指定してください。 フラグとその値との間にスペースを入れることはできません。

項目 説明
-o 既存のログ・ファイルを上書きします。 -o フラグを指定しない場合、新しいログ・ファイルの行は既存のログ・ファイルに付加されます。
-p Portno このサーバーのポート番号をデフォルト値の 808 から Port に変更します。
-b Bufsize インベントリー・スカウトのコマンドは、TCP/IP ソケットから読んで 1024 バイトの固定長バッファーに入れられる URL エンコード文字列として指定されます。 将来、プロトコルの変更に伴って読み取りバッファーが大きくなった場合は、-b フラグによってバッファー・サイズを Bufsize バイトに変更することができます。
-d maxcatsize 最大マイクロコード・カタログ・ファイル・サイズをデフォルト値 50000 から、指定の値に変更します。
-t Timeout クライアント・アプレットは、URL エンコード要求文字列の末尾に制御文字終了バイトを書き込むことによって、要求の終了を指示します。 invscoutd デーモンが一定のタイムアウト期間内に終了バイトを受け取らなかった場合、デーモンはトランザクションを異常終了し、ソケットをクローズします。 またクライアント側も、DATALEN パラメーターで指定される付加データのすべてのバイトを十分な速度で送信することによって、 読み取るブロックとブロックの間でタイムアウトが発生することがないようにする必要があります。 -t オプションは、デフォルトのタイムアウト期間を 30 秒から Timeout 秒に変更します。
-v Verblev ログ・ファイルと stderr に書き込まれる詳細の程度は、デーモンの冗長レベルによって異なります。 各レベルごとに、それより低いレベルに含まれるメッセージはそのレベルに含まれています。冗長レベルが高くなるほど、書き込まれるメッセージの数と種類が多くなります。 冗長レベルは、0 から 25 の整数です。 -v フラグは、冗長レベルをデフォルト値の 18 から Verblev に変更します。
冗長レベル
レベル 説明
0 エラー・メッセージと状況メッセージは、どれも利用できません。
5 致命的エラー・メッセージだけが書き込まれます。 致命的エラーが発生すると、サーバーは落ちます。 普通、Logfile と stderr の両方に同じようなメッセージが書き込まれます。
10 すべてのエラー・メッセージが書き込まれます。 その中には、致命的エラーだけでなくプロトコル・エラーなどの致命的でないエラーが含まれています。 致命的でないエラー・メッセージは、普通、Logfile だけに書き込まれます。
15 このレベルには、起動バナーおよびシャットダウン・バナー・メッセージが含まれます。 単純なバナー・メッセージは、普通、Logfile と stderr の両方に書き込まれます。
18 このレベルには、呼び出しトレース状況メッセージか含まれます。 クライアント呼び出しは、それぞれ単一のトレース・メッセージになります。 これは、invscoutd デーモンのデフォルトのレベルです。 トレース・メッセージは、Logfile だけに書き込まれます。
20 このレベルには、プログラム・トレース・メッセージが含まれます。 プログラム・トレースは、かなり詳細なプログラム実行状況メッセージであり、多くの場合、デバッグのために使われます。 このレベルは、通常の実動用の実行には適していません。時間が経過するにつれて、Logfile が大量のテキストであふれてしまうためです。 トレース・メッセージは、Logfile だけに書き込まれます。
25 これは、最高のレベルであり、高度なプログラム・デバッグ・メッセージが含まれます。 このレベルは、通常の実動用の実行には適していません。 トレース・メッセージは、Logfile だけに書き込まれます。

終了状況

このコマンドは次の終了値を戻します。

項目 説明
0 初期化が正常に実行されたことを示します。
ゼロ以外 初期化が正常に実行されなかったことを示します。

セキュリティー

デーモンは、実効ユーザー ID 0 (root) として実行する必要があります。 これは root によって所有され、他のすべてのユーザーがこのコマンドを起動できる ように "setuid" ビットを ON にしてインストールされます。 しかし、ある実行時点において、このデーモンのサービス子デーモンは、そのユーザー ID を 認証ユーザー ID invscout にリセットします。 ホスト・システム上にユーザー invscout が作成されていないなら、このデーモンは実行されません。

デフォルトでは、ほとんどの操作についてクライアントは、平文パスワードを付随して送ることが必要です。 クライアントのパスワードが、認証ユーザー ID invscout のシステム・パスワードと一致していないなら、そのアクションは終了して戻りコードが戻されます。 認証ユーザー ID は変更できません。

ファイル

項目 説明
/usr/sbin/invscoutd invscoutd コマンドの場所。
/etc/security/password ホスト・システム・パスワード・ファイル
/var/adm/invscout/microcode マイクロコード関連アクションのディレクトリー。マイクロコード・カタログ・ファイルの デフォルト位置。
/var/adm/invscout/microcode/catalog.mic デフォルトのマイクロコード・カタログ・ファイル。
/var/adm/invscout/invscout.log ログ・ファイル