Sun Management Center 3.6 System Reliability Manager ユーザーガイド

第 5 章 スクリプトリポジトリモジュールおよびスクリプト起動用ウィンドウモジュール

System Reliability Manager に含まれるスクリプトリポジトリモジュールおよびスクリプト起動用ウィンドウモジュールでは、リモートデバイス上で任意の管理タスクを行うスクリプトを実行できます。リモートデバイス上でスクリプトを実行することで、中央の管理ステーションに対する処理負荷を軽減できます。さらに、ポーリングをローカルにしておくためのメカニズムも提供します。

この章の内容は次のとおりです。

スクリプトリポジトリモジュール

スクリプトリポジトリモジュールでは、スクリプト起動用ウィンドウモジュールによって実行されるエージェントマシン上で利用可能なスクリプトを見ることができます。また、スクリプトリポジトリモジュールは、スクリプト起動用ウィンドウモジュールがサポートする言語もリストします。

(Solaris 10 のみ) 動的トレース (DTrace) では、ユーザープログラムおよびオペレーティングシステムの動作を観察することができます。また、システムの動作を調べたり、その仕組みを理解したり、複数のソフトウェア層にまたがるパフォーマンスの問題や異常な動作の原因を突き止めたりできます。Solaris 10 には、システムのデバッグに役立てることができるプログラムを作成するための D プログラミング言語が用意されています。

DTrace の詳細は、『Solaris 動的トレースガイド』を参照してください。

Solaris 10 の場合、スクリプトリポジトリモジュールには、よく使われる DScript が含まれています。これらのスクリプトは、スクリプト起動用ウィンドウモジュールから実行できます。

スクリプト情報グループには 2 つのテーブルがあります。

スクリプトリポジトリモジュールには、次のセキュリティー機能が実装されています。

Procedureスクリプトリポジトリモジュールにアクセスする

手順
  1. モジュールをロードします。

    モジュールのロードとアンロードの詳細は、『Sun Management Center 3.6 ユーザーガイド』を参照してください。スクリプトリポジトリモジュールは、階層ウィンドウの「ローカルアプリケーション」から利用可能です。

  2. モジュールブラウザウィンドウで、「ローカルアプリケーション」をダブルクリックします。

    カテゴリが展開されます。

  3. 「ローカルアプリケーション」で、「スクリプトリポジトリ」をダブルクリックします。

    カテゴリが展開されます。

  4. スクリプト情報フォルダをダブルクリックして、言語テーブルと スクリプトテーブルを表示します。

    スクリプトリポジトリモジュールの言語テーブルとスクリプトテーブル

言語テーブル

スクリプト情報グループの最初の表は、言語テーブルです。この表には、エージェントでサポートされるすべてのスクリプト言語がリストされます。各表エントリには、次の属性があります。

この表ではコマンドは利用できません。新しい言語を指定したり、言語を削除したりすることはできません。エントリの数は固定であり、実装するモジュールとサポートされる言語によって定義されます。

「言語ソース」は、セルに新しい情報を入力することにより変更できます。

アラーム

System Reliability Manager は、指定した場所で言語を見つけることができない場合に情報 (INFO) アラームを生成します。

スクリプトテーブル

スクリプトテーブルには、エージェント上でスクリプト起動用ウィンドウが認識するすべてのスクリプトがリストされます。


注 –

(Solaris 10 のみ) スクリプトテーブルには、定義済みの DScript がいくつか追加されています。


表内の各エントリには、次に示す属性があります。

表 5–1 スクリプトテーブルの値

属性 

説明 

スクリプト所有者 

このスクリプトを所有するエージェント上のユーザー。 

スクリプト名 

スクリプトの名前。 

詳細 

このスクリプトの目的の説明。 

管理状態 

次の状態を取り得ます。 

  • 「Enabled」は、所有者がスクリプトの使用をほかのユーザーに許可することを示します。

  • 「Disabled」は、所有者がスクリプトの使用を誰にも許可しないことを示します。

操作状態 

次の状態を取り得ます。 

  • 「Enabled」は、スクリプトが利用可能であり、起動テーブルのエントリによって起動できることを示します。

  • 「Disabled」は、スクリプトが使用できないことを示します。

  • 「NoSuchScript」は、スクリプトが指定された場所に存在しないことを示します。

  • 「WrongLanguage」は、言語が認識されないことを示します。

言語 

スクリプトが書かれている言語。この値は、言語テーブルにリストされている言語でなければなりません。 

スクリプトソース 

スクリプトのファイル名。 

デフォルト引数 

このスクリプトのデフォルトの引数。 

ユーザー 

このスクリプトの使用が許可されているユーザー。 

グループ 

このスクリプトの使用が許可されている UNIX グループ。 

ブラウザを使用して変更できるフィールドは、「管理状態」、「ユーザー」、および「グループ」です。「管理状態」は、スクリプトの希望する状態を入力する領域です。たとえば、「管理状態」は有効または無効にできます。ここで指定した状態は、希望する状態であり、モジュールが、すべての基準が満たされ準備ができたと判断したあとは、「操作状態」のみが実際の状態を表します。

スクリプトテーブルのアラーム

ScriptInfo.dat ファイル

ScriptInfo.dat は、実行可能なスクリプトに関する情報を含んでいます。ScriptInfo.dat ファイルに新しいスクリプトを追加することで、モジュールはそのスクリプトを認識できるようになります。ユーザーが所有するすべてのスクリプトが、このファイルに登録されている必要があります。

ScriptInfo.dat には、シェルスクリプト、Java、および DScript (Solaris 10 のみ) で作成されたスクリプトに関する情報が含まれます。

Procedure新しいスクリプトを追加する

手順
  1. 新しいスクリプトを作成します。

    ScriptInfo.dat ファイルの形式は、設定ファイルの標準の形式に従います。

    slice:attribute=value
    
  2. 新しいスクリプトを ScriptInfo.dat ファイルにコピーします。

    ScriptInfo.dat ファイルは、ユーザー名で識別されるディレクトリに置きます。次の例を参照してください。

    /var/opt/SUNWsymon/SysMgmtPack/script-launcher/scripts/username/ScriptInfo.dat

    スクリプトに関する情報がすでにこのファイルに含まれている場合は、現行の情報の下にスクリプトを追加します。

    次の例は、2 つのスクリプトからなる ScriptInfo.dat ファイルの例です。

    Script1:Owner = Scott
    Script1:Name = MyHello
    Script1:Desc = Says Hello
    Script1:Language = Java
    Script1:Source = Hello.class
    Script1:AdminStat = 1
    Script1:OperStat = 1
    Script1:Users = Noble
    Script1:Group = Staff
    Script2:Owner = Denise
    Script2:Name = MyFile
    Script2:Desc = Says Hello
    Script2:Language = Java
    Script2:Source = Hello.class
    Script2:AdminStat = 1
    Script2:OperStat = 1
    Script2:Users = Noble
    Script2:Group = Staff

スクリプト起動用ウィンドウモジュール

スクリプト起動用ウィンドウモジュールにより、管理機能をエージェントに委託できます。管理機能は、管理スクリプト言語で書かれた管理スクリプトです。スクリプト起動用ウィンドウモジュールは、マルチインスタンスモジュールです。スクリプト起動用ウィンドウモジュールのすべてのインスタンスが、言語およびスクリプト情報について、同じスクリプトリポジトリモジュールにアクセスします。


注 –

(Solaris 10 のみ) スクリプト起動用ウィンドウモジュールから DScript を実行できます。



注意 – 注意 –

DScript には、連続的に監視するものがあり、そうしたスクリプトの出力は膨大になります。CPU の速度が低下し、Java コンソールがハングアップする可能性があるため、そうしたスクリプトの使用は避けることを推奨します。


次のコードを抜粋して使用すると、任意の DScript に接続して、特定の時間、実行の流れを制御することができます。

tick-1sec
/i++ >= 10/
{
exit(0);
}

上記の例では、DScript が 10 秒間のみ実行され、10 秒後に出力を見ることができます。

スクリプト起動用ウィンドウモジュールには 2 つのテーブルがあります。

スクリプト起動用ウィンドウモジュールの起動テーブルと結果テーブル

スクリプト起動用ウィンドウモジュールでは、次のようにスクリプトを操作できます。

スクリプト起動用ウィンドウモジュールには、次のセキュリティー機能が実装されています。

Procedureスクリプト起動用ウィンドウモジュールにアクセスする

始める前に

スクリプト起動用ウィンドウモジュールを使用するには、スクリプトリポジトリモジュールをロードしておく必要があります。

手順
  1. モジュールをロードします。

    詳細は、『Sun Management Center 3.6 ユーザーガイド』を参照してください。スクリプトリポジトリモジュールは、モジュールブラウザウィンドウの「ローカルアプリケーション」から利用可能です。

  2. モジュールブラウザウィンドウで、「ローカルアプリケーション」をダブルクリックします。

  3. 「スクリプト起動用ウィンドウ」をダブルクリックします。

    起動テーブルと結果テーブルが表示されます。

    スクリプト起動用ウィンドウとテーブルが表示されたモジュールブラウザ。これは図に関する説明です。

起動テーブル

起動テーブルは、すべてのスクリプトの実行を制御します。この表には、実行可能なスクリプトとそのパラメータの記述が示されています。

起動テーブルのエントリは、スクリプトに引数を付加します。エントリはさらに所有者 (スクリプトを実行するアクセス権に関連付けられた) を定義します。

スクリプトのいくつかのインスタンスは、このテーブル内の単一エントリによって作成されます。このテーブル内のいくつかのエントリは、スクリプトテーブル内の同一スクリプトを指すことがあります。異なる引数と異なるアクセス権で、いくつかの同一スクリプトを実行することができます。スクリプトは、起動所有者のアクセス権でのみ実行できます。

起動テーブルには、次の表に示すような属性があります。

表 5–2 起動テーブルの属性

属性 

説明 

起動所有者 

このエントリを所有するマネージャ。 

起動名 

エントリの名前。名前は、起動テーブル内の各行で一意でなければなりません。 

スクリプト所有者 

「スクリプト名」と組み合わせて、スクリプトを識別します。 

スクリプト名 

「スクリプト所有者」と組み合わせて、スクリプトを識別します。 

引数 

スクリプトに指定する引数。 

起動開始 

スクリプトの実行を開始します。スクリプトを起動する前に、次の条件を満たす必要があります。 

  1. エントリの「操作状態」が有効な状態であること。

  2. スクリプトテーブル内に、「スクリプト所有者」と「スクリプト名」フィールドと同じ値を持つエントリがあること。

  3. スクリプトテーブル内の「スクリプト操作状態」フィールドが有効な状態であること。

  4. 「起動所有者」が、スクリプトの実行に必要なセキュリティーアクセス権を持っていること。

起動制御 

このオブジェクトは、起動テーブルから起動したスクリプトで、Run 表にあるすべての実行中スクリプトに対して状態の変更を要求する場合に使用します。 

管理状態 

この起動テーブルエントリの希望する状態 (有効または無効)。 

操作状態 

この起動テーブルエントリの実際の状態 (有効または無効)。 

最大稼働 

このエントリから起動できる同時実行のスクリプトの最大数。デフォルト値は 3 です。このフィールドは、直接書き込むことにより変更できます。 

最大達成 

起動テーブルのこのエントリから起動され完了したスクリプトで、結果テーブルに保持する最大数で、デフォルト値は 3 です。 

寿命 (秒) 

このエントリから起動したスクリプトが実行されるデフォルトの最大時間。デフォルト値は 86,400 秒 (1 日) です。 

有効期間 (秒) 

このエントリから起動されたスクリプトの実行が完了した後、このスクリプトに関する情報が結果テーブルに保持されるデフォルトの最大時間。 

Procedure起動テーブルに新しいエントリを追加する

手順
  1. 「スクリプト起動用ウィンドウモジュールにアクセスする」の説明に従って、起動テーブルにアクセスします。

  2. 起動テーブルの見出しで、マウスボタン 3 を押します。

    ポップアップメニューが表示されます。

    起動テーブルとメニューが表示されたモジュールブラウザこれは図に関する説明です。
  3. 「新規行」を選択し、必須パラメータをすべて指定します。

    「スクリプト所有者」および「スクリプト名」の値は、この起動ボタンから開始されたスクリプトを指します。

Procedureスクリプトのインスタンスを起動する

手順
  1. 「スクリプト起動用ウィンドウモジュールにアクセスする」の説明に従って、起動テーブルにアクセスします。

  2. 起動対象のスクリプト名を表示している行上でマウスボタン 3 を押します。

  3. 「スクリプトを起動」を選択します。

    スクリプトが起動されます。

Procedureスクリプトを停止する

手順
  1. 「スクリプト起動用ウィンドウモジュールにアクセスする」の説明に従って、起動テーブルにアクセスします。

  2. 停止するスクリプトを表示している行上でマウスボタン 3 を押します。

    ポップアップメニューが表示されます。

  3. 「スクリプトを中止」を選択します。

    スクリプトが実行を停止します。

結果テーブル

結果テーブルには、現在実行中または最近終了したすべてのスクリプトがリストされます。このテーブルには、次の情報が含まれています。

結果テーブルの各行に、スクリプトの実行中に渡された引数、スクリプトによって生成された結果、およびスクリプトの終了コードが含まれています。また、結果テーブルは、現在の実行情況、開始と終了のタイムスタンプに関する情報を提供します。

結果テーブルには、次の表に示すような属性があります。

表 5–3 結果テーブルの属性

属性 

説明 

実行インデックス 

スクリプトに関連付けられる一意の識別子。値は、増分する整数を持つ起動名を付加することで取得します。整数は 0 から始まります。 

引数 

スクリプトが起動されたときに渡された引数。 

終了コード 

スクリプトの実行が終了した理由。次の値を取り得ます。 

  • None – スクリプトは初期化中または実行中の状態です。

  • Halted – スクリプトは異常終了しました。

  • Successful – スクリプトが正常に終了しています。

  • Failed – スクリプトがエラーで終了しています。

結果ログ 

ログファイルへのパス。 

実行制御 

この行によって定義されたスクリプト実行の希望する状態 (abort または noop)。 

実行状態 

スクリプトの実行状態。次の値が可能です。 

  • Initializing – スクリプトは初期化中です。

  • Running – スクリプトは実行中です。

  • Not Running – 正常に終了、失敗、あるいは異常終了すると、スクリプトはこの状態になります。スクリプトが Not Running である原因は、Exit Code フィールドに表示されます。

エラーログ 

ログファイルへのパス。 

開始時間 

実行が開始された日付と時刻。 

終了時間 

実行が終了した日付と時刻。 

寿命 (秒) 

スクリプトが実行できる時間長。指定した時間を越えてもスクリプトが終了しない場合は、自動的に強制終了されます。 

有効期間 (秒) 

スクリプトが終了した後、この行が結果テーブルに留まることができる時間長。スクリプトが起動されたときは、この属性は起動テーブルの「有効期間 (秒)」フィールドの値になります。スクリプトが Not Running 状態になり、「有効期間 (秒)」を超えるとスクリプトエントリは結果テーブルから削除されます。 

Procedure結果テーブルから結果を表示する

手順
  1. 「スクリプトリポジトリモジュールにアクセスする」の説明に従って、結果テーブルにアクセスします。

  2. 結果テーブルで、実行中のスクリプトエントリ上でマウスボタン 3 を押します。

    ポップアップメニューが表示されます。

  3. 「結果ログを表示」を選択して、選択した実行中のスクリプトに対応する結果ログファイルを表示します。

    検索表示ウィンドウが表示されて、結果ログが表示されます。


    注 –

    コマンド行からログファイルにアクセスすることもできます。ログファイルは、/var/opt/SUNWsymon/SysMgmtPack/script-launcher/scripts/ UserName/logs ディレクトリに保存されます。ログファイル名には、実行中のインスタンス名が含まれるため、ユーザーが同じスクリプトを何度か実行した場合に、現行のログファイルがどれか識別できます。


Procedure結果テーブルから行を削除する

手順
  1. 「スクリプトリポジトリモジュールにアクセスする」の説明に従って、結果テーブルにアクセスします。

  2. 結果テーブルの行上でマウスボタン 3 を押します。

    ポップアップメニューが表示されます。

  3. 「行の削除」を選択します。

    ダイアログボックスが表示され、削除操作の確認または取り消しを行います。

  4. 「はい」をクリックして削除します。

    行が削除されると、結果テーブルが自動的に更新されます。