ローカルアクション実行定義ファイル
形式
# 共通ブロック [cmn [usr JP1ユーザー名] [var 環境変数ファイル名] [evt [{yes|no}]/[{yes|no}]] [cnt-opt [queue=実行待ちアクション数] , [exec=同時実行数]] end-cmn] # アクションブロック act アクション名 イベントフィルター end-cnd [det 同一アクション抑止時間] [usr JP1ユーザー名] [var 環境変数ファイル名] cmd 実行するコマンド [evt [{yes|no}]/[{yes|no}]] [cmd-opt usrprofile={0|1}] end-act : |
格納先ディレクトリ
- Windowsの場合
-
インストール先フォルダ\conf\lcact
共有フォルダ\jp1base\conf\lcact(クラスタ運用時)
- UNIXの場合
-
/etc/opt/jp1base/conf/lcact/
共有ディレクトリ/jp1base/conf/lcact/(クラスタ運用時)
説明
ローカルアクション機能の実行条件と実行コマンドを定義するファイルです。共通ブロックとアクションブロックで構成されます。共通ブロックは,すべてのアクションブロックで共通に設定するパラメーターを定義します。アクションブロックは,アクションを成立させるJP1イベントの条件と,JP1イベントの条件が成立した場合に実行するアクションを一対として定義します。
ローカルアクション機能が実行される場合,上位に定義されたアクションブロックから条件の判定を行い,条件が成立したときにアクションを実行します。条件が成立したアクションブロックより下位に定義されたアクションブロックは,条件の判定を行わず,アクションも実行されません。このため,優先度の高い条件を上位に定義してください。
定義の反映時期
JP1/Baseを起動またはリロードすると,設定が有効になります。
記述内容
ローカルアクション実行定義ファイルには,次に示す規則があります。
-
行の先頭に#(0x23)を指定すると,その行はコメント行になります。
-
1行の最大長は4,200バイトです。
-
パラメーターは,半角スペース(0x20)またはタブ(0x09)で区切ります。
-
英字の大文字小文字は区別します。
共通ブロックはアクションブロックの前に一つだけ指定します。共通ブロックとアクションブロックで共通するパラメーターが指定されている場合は,アクションブロックの指定が有効になります。共通ブロックの記述形式を次に示します。
- cmn 〜 end-cmn
-
共通ブロックの開始と終了を示すパラメーターです。
- usr JP1ユーザー名
-
アクションを実行するOSユーザーにマッピングするJP1ユーザーを指定します。このパラメーターを省略した場合,アクションブロックに同じパラメーターが必要になります。
- var 環境変数ファイル名
-
アクションを実行する場合に参照する環境変数ファイル名を255バイト以内で指定します。
- evt [{yes|no}]/[{yes|no}]
-
アクション開始イベントとアクション完了イベントのJP1イベントを発行するかどうかを指定します。/の前がアクション開始イベントで,後がアクション完了イベントの指定になります。yesが指定されている場合,JP1イベントが発行されます。noが指定されている場合や省略されている場合,JP1イベントは発行されません。
- cnt-opt [queue=実行待ちアクション数] , [exec=同時実行数]
-
実行待ちアクション数および同時実行数を指定します。queueオプションとexecオプションを指定する場合は,コンマで区切ってください。
- queue=実行待ちアクション数
-
アクションの条件が成立した後に,アクションを実行待ちできる上限値を指定します。指定した上限値を超えると,そのアクションは実行されないため,余裕のある値を指定してください。指定できる値の範囲は,0〜65,535です。省略した場合は,1,024が仮定されます。
- exec=同時実行数
-
同時に実行できるアクション数の上限値を指定します。実行中のアクション数が指定した上限値に達していると,そのアクションは実行待ちになります。指定できる値の範囲は,1〜48です。省略した場合は,1が仮定されます。
アクションブロックは,上限を1,000として複数指定できますが,省略はできません。共通ブロックとアクションブロックで共通するパラメーターが指定されている場合は,アクションブロックの指定が有効になります。アクションブロックの記述形式を次に示します。
- act アクション名 〜 end-act
-
アクションブロックの開始と終了を示すパラメーターです。actパラメーターの後には任意のアクション名を50バイト以内で指定してください。アクション名はローカルアクション実行履歴ログに出力されます。
- cnd 〜 end-cnd
-
アクションを成立させるJP1イベントの条件を指定するブロックの開始と終了を示すパラメーターです。このブロックは,actパラメーターの直後に指定してください。アクションを成立させる条件はイベントフィルターの記述形式で指定します。イベントフィルターの記述形式については,「イベントフィルターの文法」を参照してください。
なお,ローカルアクションの実行条件(イベントフィルター)で対象となるJP1イベントは,次に示す自イベントサーバに登録されたJP1イベントだけです。
-
自イベントサーバから自イベントサーバあてに発行されたイベント(JP1イベントの登録要因:1)。
-
他イベントサーバから自イベントサーバあてに発行されたイベント(JP1イベントの登録要因:3)。
例えば,jevsendコマンド(-dオプションを指定)やjevsenddコマンドなどで自ホストの他イベントサーバから自イベントサーバに登録された場合です。
他イベントサーバから転送されたJP1イベント(JP1イベントの登録要因:4)は対象外です。
-
- det 同一アクション抑止時間
-
同じアクションを実行しない時間を秒単位で指定します。指定できる時間の範囲は,1〜3,600(秒)です。このパラメーターを省略した場合,同じアクションの実行を抑止しません。
- usr JP1ユーザー名
-
アクションを実行するOSユーザーにマッピングするJP1ユーザーを指定します。JP1ユーザー名には,属性変数名が指定できます。このパラメーターを省略した場合,共通ブロックに同じパラメーターが必要になります。
- var 環境変数ファイル名
-
アクションを実行する場合に参照する環境変数ファイル名を255バイト以内で指定します。環境変数ファイル名には,属性変数名が指定できます。
- cmd 実行するコマンド
-
アクションで実行するコマンドを4,096バイト以内で指定します。実行するコマンドには,属性変数名が指定できます。実行するコマンドの形式については,「2.8.2 ローカルアクションで実行できるコマンド」を参照してください。
- evt [{yes|no}]/[{yes|no}]
-
アクション開始イベントとアクション完了イベントのJP1イベントを発行するかどうかを指定します。/の前がアクション開始イベントで,後がアクション完了イベントの指定になります。yesが指定されている場合,JP1イベントが発行されます。noが指定されている場合や省略されている場合,JP1イベントは発行されません。
- cmd-opt usrprofile={0|1}
-
コマンドの実行時にユーザープロファイルをロードすることを指定します。
このオプションを省略した場合は,0を仮定します。
0:マッピングOSユーザーのユーザープロファイルをロードしない
1:マッピングOSユーザーのユーザープロファイルをロードする
属性変数名
属性変数名は,アクションブロック内の項目に指定できます。属性変数名を指定できる項目は,JP1ユーザー名,環境変数ファイル名,実行するコマンドの3項目です。アクションを実行する前に,アクションが成立した条件のJP1イベントから,属性変数名に対応した属性値を取得して展開します。複数個所での展開はできますが,展開後の文字列に対しての展開はできません。指定できる属性変数名の一覧を次に示します。
情報の種類 |
属性変数名 |
内容 |
---|---|---|
JP1イベント基本属性に含まれる情報 |
EVID |
イベントID(基本コード:拡張コード) |
EVPID |
イベント発行元プロセスID |
|
EVUSRID |
イベント発行元プロセスのユーザーID |
|
EVGRPID |
イベント発行元プロセスのグループID |
|
EVUSR |
イベント発行元ユーザー名 |
|
EVGRP |
イベント発行元グループ名 |
|
EVHOST |
イベント発行元ホスト名 |
|
EVIPADDR |
イベント発行元IPアドレス |
|
EVMSG |
メッセージテキスト全体 |
|
JP1イベント拡張属性に含まれる情報 |
EVSEV |
イベント拡張情報重大度 (Emergency,Alert,Critical,Error,Warning,Notice,Information,Debug) |
EV"拡張属性名" |
任意の拡張属性 |
属性変数名の指定例を次に示します。
cmd abcd.bat $EVUSR
cmdパラメーターに属性変数名EVUSR(属性値:USER01)を指定した例です。この例では,abcd.bat USER01に展開されます。
属性変数名を指定するときの注意事項を次に示します。
-
展開後の文字列長が制限値をオーバーしている場合,アクションは実行されません。
-
該当しない項目の属性変数名の値はNULLになります。また,JP1イベントの種類によっては,属性変数名自体のないものや,各属性に含まれる情報に文字として認識できないコード(ASCIIコードおよび環境設定で指定した日本語文字コードの文字集合に含まれない部分)が含まれていることで,アクションが実行できない,または実行されても結果が不正になる場合があります。JP1イベント発行元製品のマニュアルなどを事前に参照し,設定してください。
-
属性変数名の直後に文字を記述する場合,英数字および「_ 」を指定すると正しく変換されません。このような場合は,属性変数名を{}で囲んでください。次に指定例を示します。なお,次の例では,イベントID($EVID)は100:0,拡張属性EX($EV"EX")はABCが設定されていると仮定します。
アクション定義 → 変換後の情報 「$EVID abc」 →「100:0 abc」 「$EVIDabc」 →「$EVIDabc」(Windowsの場合),なし(UNIXの場合) 「${EVID}abc」 →「100:0abc」 「$EVID_abc」 →「$EVID_abc」(Windowsの場合),なし(UNIXの場合) 「${EVID}_abc」→「100:0_abc」 「$EV"EX" abc」→「ABC abc」 「$EV"EX"abc」 →「ABCabc」
-
変換元の文字情報に,次に示す制御文字が含まれていた場合,その制御文字は半角スペース(0x20)に変換されて処理されます。
半角スペースに変換される制御文字:0x01〜0x1F(タブ(0x09)を除く),0x7F
例えば,$EVMSGの指定によって取得したメッセージの中に改行コード(0x0A)が含まれていた場合,改行コード(0x0A)は半角スペース(0x20)に変換されて処理されます。
(例)アクション(echo $EVMSG)を設定し,イベントのメッセージとして改行コードを含む文字列”1行目 0x0A 2行目”を受信した場合には,アクションとして実行されるコマンドは "echo 1行目△2行目"となります(△は半角スペースを表す)。
-
UNIXの場合,最終的な展開はシェルの解釈に依存します。展開後のデータに「*」など,シェルで特別な意味を持つ文字がある場合,その内容に置き換えられます。置き換えが行われないようにするには,変数全体を「"」で囲み,「"$EVMSG"」のように記述してください。