Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

A Red Hat training course is available for Red Hat Directory Server

7.5.3. 名前付きの Pipe ログでのプラグインの使用

プラグインは、名前付きパイプからログデータを読み取り、操作を実行するために呼び出すことができます。名前付きの pipe ログスクリプトでプラグインを使用する際の考慮事項があります。
  • プラグイン関数は、名前付きパイプから読み込まれる各行に対して呼び出されます。
  • プラグイン関数は Python スクリプトであり、 終了する必要があります。
  • プラグイン引数は、コマンドラインで名前付きのパイプログスクリプトに渡されます。
  • プラグインがロードされたときに、pre-operation 機能を指定することができます。
  • スクリプトの終了時に、操作後の機能を呼び出すことができます。

7.5.3.1. 名前された Pipe ログスクリプトを使用したプラグインのロード

プラグインに使用する ds-logpipe.py には、以下の 2 つのオプションがあります。
  • --plugin オプションは、プラグインファイルへのパスを指定します(Python スクリプトであり、 終了する必要があります)。
  • plugin.arg オプションは、プラグイン引数を名前付きパイプログスクリプトに渡します。プラグインファイル名( .py 拡張子なし)は プラグインで、そのプラグインで許可される引数はすべて arg になります。
以下に例を示します。
ds-logpipe.py /var/log/dirsrc/slapd-example/errors.pipe --plugin=/usr/share/dirsrv/data/example-funct.py example-funct.regex="warning" > warnings.txt
同じ引数に複数の値を渡すと、それらの値はプラグインディクショナリーの値の一覧に変換されます。たとえば、このスクリプトでは arg1 に 2 つの値が提供されます。
--plugin=/path/to/pluginname.py pluginname.arg1=foo pluginname.arg1=bar pluginname.arg2=baz
プラグインでは、これは以下に変換されます。
{'arg1': ['foo', 'bar'],
 'arg2': 'baz'}
これは、2 つの キーを持つ Python ディクショナリー オブジェクトです。1 つ目のキーは文字列 arg1 で、その値は文字列 foobar の 2 つの要素を持つ Python リストオブジェクトです。2 つ目のキーは、arg 2 の文字列で、その値は文字列 baz です。引数に値が 1 つしかない場合は、単純な文字列になります。1 つの引数名の複数の値が文字列のリストに変換されます。