1LDCLT(1) General Commands Manual LDCLT(1)
2
3
4
6 ldclt - load test program for LDAP
7
9 ldclt [-qQvV] [-E <max errors>] [-b <base DN>] [-h <host>] [-p <port>]
10 [-t <timeout>] [-D <bind DN>] [-w <passwd>] [-o <SASL option>] [-e <ex‐
11 ecParams>] [-a <max pending>] [-n <nb threads>] [-i <nb times>] [-N <nb
12 samples>] [-I <err number>] [-T <total>] [-r <low> -R <high>] [-f <fil‐
13 ter>] [-s <scope>] [-S <consumer>] [-P<supplier port>] [-W <waitsec>]
14 [-Z <certfile>]
15
17 This tool is a LDAP client targeted to validate the reliability of the
18 product under a wide variety of stress conditions.
19
21 The valid options are:
22
23 -a Asynchronous mode, with max pending operations.
24
25 -b Give the base DN to use. Default "dc=example,dc=com".
26
27 -D Bind DN. See -w
28
29 -E Max errors allowed. Default 1000.
30
31 -f Filter for searches.
32
33 -h Host to connect. Default "localhost".
34
35 -H Ldap URL to connect to. Example, ldap://localhost:389. This
36 takes precedence over -h and -p.
37
38 -i Number of times inactivity allowed. Default 3 (30 seconds)
39
40 -I Ignore errors (cf. -E). Default none.
41
42 -n Number of threads. Default 10.
43
44 -N Number of samples (10 seconds each). Default infinite.
45
46 -o SASL Option.
47
48 -p Server port. Default 389.
49
50 -P Supplier port (to check replication). Default 16000.
51
52 -q Quiet mode. See option -I.
53
54 -Q Super quiet mode.
55
56 -r Range's low value.
57
58 -R Range's high value.
59
60 -s Scope. May be base, subtree or one. Default subtree.
61
62 -S Consumer to check.
63
64 -t LDAP operations timeout. Default 30 seconds.
65
66 -T Total number of operations per thread. Default infinite.
67
68 -v Verbose.
69
70 -V Very verbose.
71
72 -w Bind passwd. See -D.
73
74 -W Wait between two operations. Default 0 seconds.
75
76 -Z certfile. Turn on SSL and use certfile as the certificate DB
77
78 -e Execution parameters:
79
80 add ldap_add() entries.
81 append entries to the genldif file.
82 ascii use ascii 7-bits strings.
83 attreplace=name:mask replace attribute of existing entry.
84 attrlist=name:name:name specify list of attribs to retrieve
85 attrsonly=0|1 ldap_search() parameter. Set 0 to read values.
86 bindeach ldap_bind() for each operation.
87 bindonly only bind/unbind, no other operation is performed.
88 close will close() the fd, rather than ldap_unbind().
89 cltcertname=name name of the SSL client certificate
90 commoncounter all threads share the same counter.
91 counteach count each operation not only successful ones.
92 delete ldap_delete() entries.
93 dontsleeponserverdown will loop very fast if server down.
94 emailPerson objectclass=emailPerson (-e add only).
95 esearch exact search.
96 genldif=filename generates a ldif file
97 imagesdir=path specify where are the images.
98 incr incremental values.
99 inetOrgPerson objectclass=inetOrgPerson (-e add only).
100 keydbfile=file filename of the key database
101 keydbpin=password password for accessing the key database
102 noglobalstats don't print periodical global statistics
103 noloop does not loop the incremental numbers.
104 object=filename build object from input file
105 person objectclass=person (-e add only).
106 random random filters, etc...
107 randomattrlist=name:name:name random select attrib in the list
108 randombase random base DN.
109 randombaselow=value low value for random generator.
110 randombasehigh=value high value for random generator.
111 randombinddn random bind DN.
112 randombinddnfromfile=fine retrieve bind DN & passwd from file
113 randombinddnlow=value low value for random generator.
114 randombinddnhigh=value high value for random generator.
115 rdn=attrname:value alternate for -f.
116 referral=on|off|rebind change referral behaviour.
117 scalab01 activates scalab01 scenario.
118 scalab01_cnxduration maximum connection duration.
119 scalab01_maxcnxnb modem pool size.
120 scalab01_wait sleep() between 2 attempts to connect.
121 smoothshutdown main thread waits till the worker threads exit.
122 string create random strings rather than random numbers.
123 v2 ldap v2.
124 withnewparent rename with newparent specified as argument.
125 randomauthid random SASL Authid.
126 randomauthidlow=value low value for random SASL Authid.
127 randomauthidhigh=value high value for random SASL Authid.
128
130 To populate a database with 1000 user objects create a file tem‐
131 plate.ldif containing:
132
133 objectClass: top
134 objectclass: person
135 objectClass: organizationalPerson
136 objectClass: inetorgperson
137 objectClass: posixAccount
138 objectClass: shadowAccount
139 sn: user[A]
140 cn: user[A]
141 givenName: user[A]
142 description: description[A]
143 userPassword: password[A]
144 mail: user[A]@example.com
145 uidNumber: 1[A]
146 gidNumber: 1[A]
147 shadowMin: 0
148 shadowMax: 99999
149 shadowInactive: 30
150 shadowWarning: 7
151 homeDirectory: /home/uid[A]
152
153 This can now be loaded to the database using:
154
155 ldclt -h localhost -p 389 -D "cn=Directory Manager" -w password -b "ou=people,dc=example,dc=com" -I 68 -e add,commoncounter -e "object=/tmp/template.ldif,rdn=uid:user[A=INCRNNOLOOP(0;999;4)]"
156
157 Using these created users you can test binding to the accounts with:
158
159 ldclt -h localhost -p 389 -e bindeach,bindonly -D uid=user0XXX,dc=example,dc=com -w password0XXX -e randombinddn,randombinddnlow=0,randombinddnhigh=0999 -e esearch -f "(&(objectClass=posixAccount)(uid=user*)(uidNumber=*)(gidNumber=*))"
160
162 ldclt was written by the 389 Project.
163
165 Report bugs to https://github.com/389ds/389-ds-base/issues/new
166
168 Copyright © 2001 Sun Microsystems, Inc. Used by permission.
169 Copyright © 2018 Red Hat, Inc.
170 This manual page was written by Michele Baldessari <michele@pu‐
171 pazzo.org>, for the Debian project (but may be used by others).
172 This is free software. You may redistribute copies of it under the
173 terms of the Directory Server license found in the LICENSE file of this
174 software distribution. This license is essentially the GNU General
175 Public License version 2 with an exception for plug-in distribution.
176
177
178
179 March 31, 2017 LDCLT(1)