Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

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

付録B Directory Server で利用可能なスクリプトのテスト

Red Hat Directory Server は、さまざまなストレスまたは負荷の 状況で Directory Server のパフォーマンスをテストするために使用できる 2 つのスクリプトを提供します。テストスクリプトは異なる環境をシミュレートし、実稼働環境で使用する前に、管理者は設定やマシンの変更を評価することができます。
ldclt および rsearch は両方とも /usr/bin ディレクトリーにあります。

B.1. ldclt(Load Stress Tests)

LDAP クライアントスクリプト(ldclt)は、Directory Server をロードするためにユーザー定義のシナリオで複数のクライアント接続を確立します。クライアント操作には、LDIF ファイルの生成などの設定操作に加え、ディレクトリーの追加、検索、変更、modRDNs、削除、および削除が含まれます。操作はランダム化できます。ランダムユーザーとしてバインドおよびバインド解除できます。これにより、ディレクトリーのより現実的な使用環境をシミュレートできます。
ldclt ツールは、Directory Server のパフォーマンスを測定するために継続的に発生する操作の完了時間を測定します。複数のスレッドを使用すると、負荷の高い下でパフォーマンスをテストできます。各テストは LDAP 操作の同じタイプを実行しますが、異なる設定を使用します(異なるユーザー認証情報、異なる属性タイプ、サイズ、異なるターゲットサブツリーなど)。
LDAP 操作変数の定義に加えて、管理者はスレッドのパフォーマンスを制御し、サーバーに特定の負荷を設定できます。
ldclt ツールは特に自動化されたテストに使用することが意図されているため、そのオプションは、複雑なテスト操作であっても、広範かつ柔軟で、簡単にスクリプト化されています。
注記
ldclt はロードテストであるため、大量のシステムリソースを使用することに注意してください。このツールは、最低 8 MB のメモリーを使用します。スレッドの数、操作のタイプ、およびその他の設定によっては、より多くのメモリーを使用できます。
操作のタイプや、このような操作に使用するディレクトリーデータによっては、ldclt は独自のリソース制限を設定できます。システムリソース制限の管理に関する詳細は、ulimit および getrlimit の man ページを参照してください。
ldclt ユーティリティーは、/usr/bin ディレクトリーにあります。

B.1.1. 構文

ldlt [ -q | -Q | -v | -V ] [ -E max_errors ] [ -b base_DN ] [ -h host ] [ -p ポート ] [ -t timeout ] [ -D bind_DN ] [ -w パスワード ] [ -o SASL_options ] [ -e execution_params ] [ -a max_pending ] [ -n number_of_threads ] [ -i inactivity_times ] [ -N number_of_samples ] [ -I error_code ] [ -T total_number_of_operations ] [ -r low_range ] [ -R high_range ] [ -f filter ] [ -s scope ] [ -S コンシューマー ] [ -P supplier_port ] [ -W wait_time ] [ -Z certificate_file ]

B.1.2. ldclt オプション

表B.1 ldclt オプション

オプション 詳細
-a max_pending_ops 定義された最大保留中の操作数を指定して、非同期モードでツールを実行します。
-b base_dn LDAP 操作テストの実行に使用するベース DN を指定します。指定のない場合、デフォルト値は dc=example,dc=com になります。
-D bind_dn サーバーへの接続に使用する ldclt ユーティリティーのバインド DN を指定します。
-E max_errors ツールの終了前にテスト可能な最大エラー数を設定します。デフォルトは 1000 です。
-e execution_params テストに使用する操作およびその他のテスト環境パラメーターを指定します。-e に使用できる値は 表B.2「実行パラメーター」 に記載されています。このオプションでは、コンマ区切りリストで複数の値を使用できます。
-f filter 検索テストに使用する LDAP 検索フィルターを指定します。
-h テストを実行する Directory Server のホスト名または IP アドレスを指定します。ホストが指定されていない場合、ldclt はローカルホストを使用します。
-I error_code 特定の応答コードに一致するエラーを無視するように ldclt に指示します。たとえば、- I 89 は、エラーコード 89 を無視するようサーバーに指示します。
-i inactivity_times 終了する前にツールを非アクティブにできる間隔を数で設定します。デフォルトでは、この設定は 3 で、30 秒(各操作の間隔は 10 秒の長さ)に変換されます。
-N number_of_samples 実行する反復数を設定します。つまり、実行する 10 秒のテスト期間の回数を設定します。デフォルトでは、これは無限で、ツールが手動で停止している場合にのみ終了します。
-n number_of_threads 操作に対して同時に実行するスレッド数を設定します。デフォルト値は 10 です。
-o SASL_option ツールに対し、SASL を使用してサーバーに接続するよう指示し、使用する SASL メカニズムを指定します。形式は -o saslOption=value です。saslOption には、6 つの値のいずれかを設定できます。
  • mech、SASL 認証メカニズム
  • authid(サーバー(Kerberos プリンシパル)にバインドユーザー)
  • authzid(プロキシー承認がサポートされていないため、サーバーによって無視される)
  • secProp(セキュリティープロパティー)
  • レルム(Kerberos レルム)
  • flags
想定される値は、サポートされるメカニズムによって異なります。-o は複数回使用して、メカニズムに必要なすべての SASL 情報を渡すことができます。以下に例を示します。
-o "mech=DIGEST-MD5" -o "authzid=test_user" -o "authid=test_user"
-P master_port レプリケーションテスト用にサプライヤーサーバーへの接続に使用するポートを指定します。デフォルトは、指定がない場合のデフォルトは 16000 です。
-p port テストしている Directory Server インスタンスのサーバーポート番号を指定します。
-Q このツールを「super」quiet モードで実行します。これは、ldclt によって実行される操作で発生したエラーを無視します。
-q このツールを quiet モードで実行します。
-R number 範囲に高い数を設定します。
-r number 範囲の小さい数を設定します。
-S consumer_name レプリケーションテストを実行するために接続するコンシューマーサーバーのホスト名を指定します。
-s scope 検索条件を指定します。ldapsearch と同様に、値はサブツリー、one、または base にすることができます。
-T ops_per_thread スレッドごとに許容される最大操作数を設定します。
-t timeout LDAP 操作のタイムアウト期間を設定します。デフォルトは 30 秒です。
-V 非常に詳細なモードでツールを実行します。
-v ツールを冗長モードで実行します。
-W wait_time 1 回の操作が完了して次の操作を開始するまで、ldclt ツールが待機するまでの時間を秒単位で設定します。デフォルトは 0 で、待機時間はないことを意味します。
-w password テスト用に Directory Server にバインドするために、- D アイデンティティーで使用するパスワードを指定します。
-Z /path/to/cert.db テスト接続用に TLS を有効にし、証明書データベースとして使用するファイルを参照します。
-e オプションは、ldclt テスト操作の実行パラメーターを設定します。コンマ区切りリストで複数のパラメーターを設定できます。以下に例を示します。
-e add,bindeach,genldif=/var/lib/dirsrv/slapd-instance/ldif/generated.ldif,inetOrgPerson

表B.2 実行パラメーター

パラメーター 詳細
abandon 非同期検索要求についてのバンドオン機会を開始します。
add ディレクトリーにエントリーを追加します(ldapadd)。
append genldif オプションで生成された LDIF ファイルの末尾にエントリーを追加します。
ascii ASCII 7 ビットの文字列を生成します。
attreplace=name:mask 既存エントリーの属性(名前)を置き換える変更操作を実行します。
attrlist=name:name:name 検索操作で返す属性の一覧を指定します。
attrsonly=# 属性値を読み取るかどうかを設定するために、検索操作で使用されます。使用できる値は 0(読み取り値)または 1(読み取り値なし)です。
bindeach ldclt ツールに対し、試行する各操作でバインドするように指示します。
bindonly ldclt ツールに対し、bind/unbind 操作のみを実行するように指示します。他の操作は実行されません。
close バインド解除操作を実行するのではなく、接続を閉じるようにツールに指示します。
cltcertname=name TLS 接続に使用する TLS クライアント証明書の名前を指定します。
commoncounter ldclt ツールですべてのスレッドを開き、同じカウンターを共有します。
counteach ツールに対し、各操作を成功せず、各操作をカウントするように指示します。
削除 削除操作を開始します。
deref 検索操作(esearch)に逆参照制御を追加します。add を使用すると、逆参照検索を許可するために secretary 属性を新しいエントリーに追加するように ldclt に指示します。
dontsleeponserverdown サーバーが停止すると、ツールが高速にループします。
emailPerson これにより、emailPerson のオブジェクトクラスが生成されたエントリーに追加されます。これは add 操作でのみ有効です(-e add)。
esearch 正確な検索を実行します。
genldif=filename 操作で使用する LDIF ファイルを生成します。
imagesdir=path テストで使用するイメージの場所を指定します。
incr 増分値を有効にします。
inetOrgPerson これにより、inetOrgPerson オブジェクトクラスが生成されたエントリーに追加されます。これは add 操作でのみ有効です(-e add)。
keydbfile=file TLS 接続で使用するキーデータベースのパスおよびファイル名が含まれます。
keydbpin=password キーデータベースにアクセスするためのトークンパスワードが含まれます。
noglobalstats 定期的なグローバル統計を出力する ように ツールに指示します。
noloop 増分番号をループしません。
object=filename 入力ファイルからエントリーオブジェクトをビルドします。
person これにより、生成されたエントリーに person オブジェクトクラスが追加されます。これは add 操作でのみ有効です(-e add)。
random ldclt ユーティリティーで、ランダムフィルターやランダムベース DNS などのランダムな要素をすべて使用するよう指示します。
randomattrlist=name:name:name 指定された一覧からランダムの属性を選択されるように ldclt ユーティリティーに指示します。
ランダムベース ldclt ユーティリティーで、ディレクトリーからランダムなベース DN を選択するよう指示します。
randombaselow=value 乱数ジェネレーターの低い値を設定します。
randombasehigh=value 乱数ジェネレーターの高い値を設定します。
randombinddn ldclt ユーティリティーで、ランダムなバインド DN を使用するように指示します。
randombinddnfromfile=file ファイルから選択したランダムなバインド DN を使用するように ldclt ユーティリティーに指示します。ファイルの各エントリーには、適切な DN パスワードペアが必要です。
randombinddnlow=value 乱数ジェネレーターの低い値を設定します。
randombinddnhigh=value 乱数ジェネレーターの高い値を設定します。
rdn=attrname:value 検索フィルターとして使用する RDN を指定します。これは、- f フィルターの 代わりに使用されます。
referral=value 操作の参照動作を設定します。on(参照を許可する)、off(逆参照)、または rebind(再接続の試行)の 3 つのオプションがあります。
smoothshutdown ワーカースレッドが終了するまでメインスレッドをシャットダウンしないように ldclt ユーティリティーに指示します。
string ldclt ユーティリティーに対し、乱数ではなくランダムな文字列を作成するよう指示します。
v2 テスト操作に LDAPv2 を使用するように ldclt ユーティリティーに指示します。
withnewparent modRDN 操作を実行します。newparent が設定されたエントリーの名前を引数として変更してください。
randomauthid ランダムな SASL 認証 ID を使用します。
randomauthidlow=value 無作為な SASL 認証 ID に低い値を設定します。
randomauthidhigh=value ランダム SASL 認証 ID に高い値を設定します。

B.1.3. ldclt の結果

ldclt は、指定された数のスレッドで、指定した操作を継続的に実行します。デフォルトでは、パフォーマンス統計を 10(10 秒ごとに)に出力します。
結果には、スレッドごとの操作数と 1 秒あたりの平均数が表示され、その 10 秒間で実行された操作の合計数が表示されます。
ldclt[process_id] Average rate: number_of_ops/thr (number_of_ops/sec), total: total_number_of_ops
以下に例を示します。
ldclt[22774]: Average rate: 10298.20/thr  (15447.30/sec), total: 154473
ldclt は、累積平均および合計を 15 分ごとに出力し、ツールが終了した時点で出力します。
ldclt[22774]: Global average rate: 821203.00/thr  (16424.06/sec), total: 12318045
ldclt[22774]: Global number times "no activity" reports: never
ldclt[22774]: Global no error occurs during this session.
Catch SIGINT - exit...
ldclt[22774]: Ending at Wed Feb 24 18:39:38 2010
ldclt[22774]: Exit status 0 - No problem during execution.
一部の操作(追加など)や、- v または - V などの詳細な出力オプションを使用すると、画面に追加データが表示されます。情報の種類は操作のタイプによって異なりますが、一般的には操作を実行しているスレッドおよび操作によって呼び出されるプラグインを示します。以下に例を示します。
ldclt -b ou=people,dc=example,dc=com -D "cn=Directory Manager" -w secret12 -e add,person,incr,noloop,commoncounter -r90000 -R99999 -f "cn=testXXXXX" -V

...
ldclt[11176]: T002: After ldap_simple_bind_s (cn=Directory Manager, secret12)
ldclt[11176]: T002: incremental mode:filter="cn=test00009"
ldclt[11176]: T002: tttctx->bufFilter="cn=test00009"
ldclt[11176]: T002: attrs[0]=("objectclass" , "person")
ldclt[11176]: T002: attrs[1]=("cn" , "test00009")
ldclt[11176]: T002: attrs[2]=("sn" , "toto sn")
...
ldclt[11176]: Average rate:   195.00/thr  (  195.00/sec), total:    1950
ldclt[10627]: Global average rate:  238.80/thr  (238.80/sec), total:   2388
ldclt[10627]: Global number times "no activity" reports: never
ldclt[10627]: Global no error occurs during this session.
Catch SIGINT - exit...
ldclt[10627]: Ending at Tue Feb 23 11:46:04 2010
ldclt[10627]: Exit status 0 - No problem during execution.
ほとんどのエラーは、テストを中断せずに ldclt により処理されます。発生した致命的なエラーは、ツールの終了ステータスと共に一覧表示され、累積した合計で返されます。
Global no error occurs during this session.
スレッド内で処理される LDAP 操作エラー。接続エラーは、全体的なテストに影響を及ぼさずにスレッドを強制終了します。ldclt ユーティリティーは、各 LDAP エラーが発生した回数をカウントします。
ldclt が LDAP エラーに応答する方法を設定できます。-E オプションを使用して、LDAP エラーの発生後に、スクリプトに異なるしきい値をエラーに設定します。-I オプションを使用すると、すべてのスレッドで指定された LDAP エラーコードを無視するようにスクリプトに指示します。エラーの終了制限を変更し、特定のエラーコードを無視すると、テストスクリプトまたはテスト設定を改善できます。

B.1.4. ldclt コードおよび ldclt Exit Codes の終了

ldclt コマンドは無期限に実行されます。このスクリプトは、致命的なランタイムや初期化エラーが発生したり、LDAP エラーの制限に達するなどの状況や、操作または時間制限に到達したり、操作や時間制限に到達したりできます。
実行の統計は、コマンドが完了するまで(終了スクリプトまたはスクリプトの終了時)表示されません。ldclt スクリプトを中断する方法は 2 つあります。
  • control-backslash(^\)または kill -3 のヒットは、スクリプトを終了しずに現在の統計を出力します。
  • control-C(^C)または kill -2 がスクリプトを終了して、グローバル統計を出力します。
ldclt スクリプトが終了するか、中断されると、統計およびエラー情報と共に終了コードを返します。

表B.3 ldclt 終了コード

終了コード 詳細
0 成功 (エラーなし)。
1 操作によって深刻な致命的なエラーが発生しました。
2 ツールと渡されるパラメーターにエラーがありました。
3 このツールは、LDAP エラーの最大数に到達します。
4 ツールは Directory Server インスタンスにバインドできませんでした。
5 このツールは、TLS ライブラリーを読み込み、TLS 経由で接続できませんでした。
6 マルチスレッド(mutex)エラーがありました。
7 初期化の問題がありました。
8 このツールは、メモリー割り当てエラーなどのリソース制限に到達します。
99 スクリプトに不明なエラーが発生しました。

B.1.5. 使用方法

これらは、ldclt を使用して Directory Server をテストする一般的な例を提供します。より複雑な例を含むテストスクリプトは、ldclt ソースファイルにあります。これは 389 Directory Server プロジェクトからダウンロードできます https://git.fedorahosted.org/cgit/389/ds.git/tree/ldap/servers/slapd/tools/ldclt/examples
すべての ldclt コマンドでは、実行パラメーターのセット(テストの種類によって異なる)と接続パラメーター(すべてのタイプの操作で同じ)が必要です。以下に例を示します。
# ldclt -e execution_parameters -h localhost -p 389 -D "cn=Directory Manager" -w secret -b "ou=people,dc=example,dc=com"
ldclt を実行すると、まずそのテストに設定されたすべてのパラメーターを出力します。
Process ID         = 1464
Host to connect    = localhost
Port number        = 389
Bind DN            = cn=Directory Manager
Passwd             = secret
Referral           = on
Base DN            = ou=people,dc=example,dc=com
Filter             = "cn=MrXXX"
Max times inactive = 3
Max allowed errors = 1000
Number of samples  = -1
Number of threads  = 10
Total op. req.     = -1
Running mode       = 0xa0000009
Running mode       = quiet verbose random exact_search
LDAP oper. timeout = 30 sec
Sampling interval  = 10 sec
Scope              = subtree
Attrsonly          = 0
Values range       = [0 , 1000000]
Filter's head      = "cn=Mr"
Filter's tail      = ""

B.1.5.1. LDIF の生成

ldclt ツール自体を使用して、テストに使用できる LDIF ファイルを生成することができます。
注記
LDIF ファイルを生成する場合、ldclt ツールはサーバーへの接続を試行したり、操作を実行しようとしません。
LDIF ファイルを生成するには、ツールがエントリーの作成(-e オブジェクト)、および指定された出力ファイル(-egenldif)に使用する基本的なテンプレートファイルが必要です。
テンプレートファイルでは、エントリー属性の明示的な値を指定でき、変数を使用することができます。エントリー属性に一意の値を指定したい場合、/usr/share/dirsrv/data ディレクトリーには 3 つのデータファイルが含まれており、surnames、名、および組織単位を生成できます。これらの値のリストを使用して、テストユーザーおよびディレクトリーツリー(dbgen-FamilyNames、dbgen- GivenNames、および dbgen-OrgUnits )を作成できます。これらのファイルは、rndfromfile オプション、incr fromfile オプション、または incrfromfilenoloop オプションと共に使用 できます。
テンプレートファイルの基本フォーマットは以下のとおりです。
# comment

attribute: string | variable=keyword(value)
変数は A から H の文字を指定可能です。可能なキーワードは、 表B.4「ldclt Template LDIF ファイルキーワード」
一部の変数とキーワードは、- e オブジェクト オプションおよびその他の利用可能なパラメーター( rdnなど)で渡すことができます。
-e object=inet.txt,rdn='uid:[A=INCRNNOLOOP(0;99999;5)]'

表B.4 ldclt Template LDIF ファイルキーワード

キーワード 詳細 形式
RNDN 指定された範囲(低)および指定された長さのランダムな値を生成します。 RNDN(low;high;length)
RNDFROMFILE 指定されたファイルで利用可能な任意の値からランダムな値をプルします。 RNDFROMFILE(filename)
INCRN 指定された範囲(低)と指定の長さ内に順次値を作成します。 INCRN(low;high;length)
INCRNOLOOP (インクリメント範囲をループすることなく) 指定された範囲内 (low - high) で、指定された長さの連続した値を作成します。 INCRNOLOOP(low;high;length)
INCRFROMFILE 指定されたファイルの値をインクリメントして値を作成します。 INCRFROMFILE(filename)
INCRFROMFILENOLOOP 値をループせずに、ファイルの値をインクリメントして値を作成します。 INCRFROMFILENOLOOP(filename)
RNDS 指定の長さのランダムな値を生成します。 RNDS(length)
たとえば、このテンプレートファイルは /usr/share/dirsrv/data のサンプルファイルから名前を取り出し、他の属性を動的に構築します。

例B.1 テンプレートファイルの例

objectclass: inetOrgPerson
sn: [B=RNDFROMFILE(/usr/share/dirsrv/data/dbgen-FamilyNames)]
cn: [C=RNDFROMFILE(/usr/share/dirsrv/data/dbgen-GivenNames)] [B]
password: test[A]
description: user id [A]
mail: [C].[B]@example.com
telephonenumber: (555) [RNDN(0;999;3)]-[RNDN(0;9999;4)]
次に、ldclt コマンドを使用して、そのテンプレートを使用して 100,000 エントリーを持つ LDIF ファイルをビルドします。
# ldclt -b "ou=people,dc=csb" -e object=inet.txt,rdn='uid:[A=INCRNNOLOOP(0;99999;5)]' -e genldif=100Kinet.ldif,commoncounter

B.1.5.2. エントリーの追加

ldclt ツールは、以下の 2 つのテンプレートのいずれかに一致するエントリーを追加できます。
  • person
  • inetorgperson
-f フィルターは、ユーザーエントリーの名前属性の形式を設定します。たとえば、- f "cn=MrXXXXX" は、- f "cn=Mr01234" などの名前を作成します。-fperson または inetorgperson パラメーターを使用すると基本的なエントリーが作成されます。
objectclass: person
sn: ex sn
cn: Mr01234
より複雑なエントリー(検索およびテストに適した)は、rdn パラメーターとオブジェクトファイルを使用して作成できます エントリーの全オプションは、「LDIF の生成」 で説明されています。The rdn および object パラメーターは、ディレクトリーに追加または編集するエントリーの形式です。The rdn execution パラメーターはキーワードパターン( 表B.4「ldclt Template LDIF ファイルキーワード」に記載)を取り、テキストファイルに記載されているエントリーからエントリープールを取得します。
-e rdn='uid:[A=INCRNNOLOOP(0;99999;5)]',object=inet.txt
ldclt ツールは、数値シーケンスのエントリーを作成します。つまり、これらのエントリーを追加する方法と、シーケンスの数も定義する必要があります。これには、以下のようなオプションが含まれます。
  • -r および -R: エントリーの数値の範囲を設定します。
  • incr または random - 割り当て番号のメソッドを設定します(これらは -f でのみ使用されます)。
  • -r および -R: エントリーの数値の範囲を設定します。
  • noloop: ループする代わりに範囲の最後に到達すると追加操作を停止する

例B.2 エントリーの追加

# ldclt -b ou=people,dc=example,dc=com -D "cn=Directory Manager" -w secret -e add,person,incr,noloop,commoncounter -r0 -R99999 -f "cn=MrXXXXX" -v -q
追加 操作は、より複雑なテスト用のディレクトリーツリーの構築にも使用できます。エントリーが存在しないブランチに属するディレクトリーに追加されると、ldclt ツールはそのブランチエントリーを自動的に作成します。
注記
存在しないブランチの子であるエントリーが最初に追加されると、ブランチエントリーがディレクトリーに追加されます。ただし、エントリー自体は追加されません。後続のエントリーは、新規ブランチに追加されます。
ブランチエントリーを自動的に追加するには、命名属性は cno、または ou である必要があります。

例B.3 ディレクトリーツリーの作成

# ldclt -b ou=DeptXXX,dc=example,dc=com -D "cn=Directory Manager" -w secret -e add,person,incr,noloop,commoncounter -r0 -R99999 -f "cn=MrXXXXX" -v -q

B.1.5.4. 操作の変更

attreplace 実行パラメーターは、エントリーの特定属性を置き換えます。
modify 操作は、RDN フィルターを使用して、更新するエントリーを検索します。The rdn および object パラメーターは、ディレクトリーに追加または編集するエントリーの形式です。The rdn execution パラメーターはキーワードパターン( 表B.4「ldclt Template LDIF ファイルキーワード」に記載)を取り、テキストファイルに記載されているエントリーからエントリープールを取得します。

例B.9 変更操作

# ldclt -h localhost  -p 389 -D "cn=Directory Manager" -w secret -b "ou=people,dc=example,dc=com" -e rdn='uid:[RNDN(0;99999;5)]' -I 32 -e attreplace='description: random modify XXXXX'

B.1.5.5. modrdn 操作

ldclt コマンドは、以下の 2 種類の modrdn 操作をサポートします。
  • エントリーの命名
  • エントリーを新しい親へ移動
ldclt ユーティリティーは、無作為に選択した DN から新しいエントリー名または親を作成します。
基本的な名前変更操作には、以下の 3 つの実行パラメーターが必要です。
  • 名前変更
  • rdn='pattern'
  • object=file
The rdn および object パラメーターは、ディレクトリーに追加または編集するエントリーの形式です。The rdn execution パラメーターはキーワードパターン( 表B.4「ldclt Template LDIF ファイルキーワード」に記載)を取り、テキストファイルに記載されているエントリーからエントリープールを取得します。

例B.10 単純な名前操作

# ldclt -h localhost -p 389 -D "cn=Directory Manager" -w secret -b "ou=people,dc=example,dc=com" -I 32 -I 68 -e rename,rdn='uid:[RNDN(0;999;5)]',object="inet.txt"
withnewparent execution パラメーターを使用すると、エントリーの名前を変更し、新しい親エントリーの下に移動します。親エントリーが存在しない場合は、ldclt ツールにより作成されます。[3]

例B.11 エントリーの名前変更および新規親への移行

# ldclt -h localhost -p 389 -D "cn=Directory Manager" -w secret12 -b "ou=DeptXXX,dc=example,dc-com" -I 32 -I 68 -e rename,withnewparent,rdn='uid:Mr[RNDN(0;99999;5)]',object="inet.txt"

B.1.5.6. 操作の削除

ldclt delete 操作は、追加操作の逆になります。追加と同様に、削除操作はさまざまな方法でエントリーを削除できます。
  • ランダム(-e delete,random)
  • RDN-ranges (-e delete,rdn=[pattern])
  • 順次(-e delete,incr)
無作為な削除は、指定された範囲内のエントリー内で行われるように設定されます。これには、以下のオプションが必要です。
  • -e delete,random
  • バインドされた範囲の -r および -R
  • -f (フィルターがエントリーと一致する)

例B.12 ランダムな削除操作

# ldclt -b "ou=people,dc=example,dc=com" -D "cn=Directory Manager" -w secret -e delete,random -r0 -R99999 -f "uid=XXXXXX" -I 32 -v -q
RDN ベースの削除では、キーワード( 表B.4「ldclt Template LDIF ファイルキーワード」に記載のとおり)で rdn 実行パラメーターを使用し、テキストファイルにリストされたエントリーからエントリープールを引き出します。この形式には、以下の 3 つの実行パラメーターが必要です。
  • -e delete
  • -e rdn='pattern'
  • -e object='file'

例B.13 RDN ベースの削除操作

# ldclt -b "ou=people,dc=example,dc=com" -D "cn=Directory Manager" -w secret -e delete,rdn='uid:[INCRNNOLOOP(0;99999;5)]',object="inet.txt" -I 32 -v -q
最後の 削除 の操作形式はランダムの削除形式とよく似ていますが、ランダムにではなく、指定の範囲で順次移動しません。
  • -e delete,incr
  • バインドされた範囲の -r および -R
  • -f (フィルターがエントリーと一致する)

例B.14 順次削除操作

# ldclt -b "ou=people,dc=example,dc=com" -D "cn=Directory Manager" -w secret -e delete,incr -r0 -R99999 -f "uid=XXXXXX" -I 32 -v -q

B.1.5.7. バインド操作

デフォルトでは、各 ldclt スレッドはサーバーに 1 度バインドし、そのすべての操作を 1 つのセッションで実行します。-e bindeach を他の操作と共に使用して、各操作のために ldclt ツールをバインドするよう指示し、次の操作を開始する前にバインド解除することができます。
-e add,bindeach ...
バインドおよびバインド解除操作のみをテストするには、- e bindeach、bindonly 実行パラメーターを使用し、他の操作情報がありません。以下に例を示します。
# ldclt -h localhost -p 389 -b "ou=people,dc=example,dc=com" -e bindeach,bindonly -e bind_info
bind 操作は、接続パラメーターで -D および - w user name-password ペアを使用することで、テストに使用するユーザーを 1 つ指定できます。
注記
正常にバインド解除するのではなく、バインドパラメーターで -e close オプションを使用して、Directory Server 上にある接続がドロップされる影響をテストします。

例B.15 テストのバインド専用とクローズテスト

# ldclt -h localhost -p 389 -D "cn=Directory Manager" -w secret -e bindeach,bindonly,close
また、指定のファイル(randombinddnfromfile)からランダムなバインド ID を選択するために使用できる実行パラメーターや、範囲内でランダムに選択した DN(-e randombinddn,randombinddnlow=X,randombinddnlow=X,randombinddnhigh=Y)を選択するために使用できる実行パラメーターもあります。

例B.16 ファイルのアイデンティティーからランダムなバインド

# ldclt -h localhost -p 389 -e bindeach,bindonly -e randombinddnfromfile=/tmp/testbind.txt 
ランダムのアイデンティティーを使用したバインディングは、生成された LDIF からアイデンティティーが追加される場合や、- e add を使用してアカウントが範囲に追加された場合に便利です。ldclt ツールは、X を変数として使用し、指定された範囲でインクリメントする値を自動生成できます。

例B.17 無作為なベース DN からのランダムなバインド

# ldclt -h localhost -p 389 -e bindeach,bindonly -D "uid=XXXXX,dc=example,dc=com" -w testXXXXX -e randombinddn,randombinddnlow=0,randombinddnhigh=99999

B.1.5.8. 無作為ベース DN での操作の実行

すべての操作は、無作為に選択したベース DN に対して実行できます。randombase パラメーターのtr io は、選択する組織単位の範囲を設定します。-b ベースエントリーの変数は、ベース DN の形式を設定します。
-b "ou=DeptXXX,dc=example,dc=com" -e randombase,randombaselow=0,randombasehigh=999 ...

B.1.5.9. TLS 認証

すべての操作は TLS を介して実行してセキュアな接続に対してセキュアな認証とパフォーマンスをテストすることができます。TLS 認証には 2 つのパラメーターが必要です。
  • 接続パラメーター -Z。Directory Server のセキュリティーデータベースへのパスを提供します。
  • 実行パラメーター cltcertnamekeydbfile、および keydbpin。これには、サーバーが TLS データベースへのアクセスを要求する情報が含まれます。
たとえば、以下は TLS でバインドテストを実行します。
# ldclt -h host -p port -e bindeach,bindonly -Z certPath -e cltcertname=certName,keydbfile=filename,keydbpin=password

B.1.5.10. 破棄操作

-e abandon パラメーターが開き、サーバー上の操作を取り消します。これは、それ自体または別のタイプの操作(- e add や -eesearch など)で実行できます。
# ldclt -e abandon -h localhost -p 389 -D "cn=Directory Manager" -w secret -v -q -b "ou=people,dc=example,dc=com"


[3] add 操作と同様に、ツールが親が初めて参照されると、親エントリーが作成されますが、このエントリー が作成されません