<?xml version="1.0" encoding="UTF-8"?>
<!--
! CCPL HEADER START
!
! This work is licensed under the Creative Commons
! Attribution-NonCommercial-NoDerivs 3.0 Unported License.
! To view a copy of this license, visit
! http://creativecommons.org/licenses/by-nc-nd/3.0/
! or send a letter to Creative Commons, 444 Castro Street,
! Suite 900, Mountain View, California, 94041, USA.
!
! You can also obtain a copy of the license at
! trunk/opendj3/legal-notices/CC-BY-NC-ND.txt.
! See the License for the specific language governing permissions
! and limitations under the License.
!
! If applicable, add the following below this CCPL HEADER, with the fields
! enclosed by brackets "[]" replaced with your own identifying information:
! Portions Copyright [yyyy] [name of copyright owner]
!
! CCPL HEADER END
!
! Copyright 2011-2014 ForgeRock AS
!
-->
<refentry xml:id='import-ldif-1'
xmlns='http://docbook.org/ns/docbook'
version='5.0' xml:lang='en'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://docbook.org/ns/docbook
http://docbook.org/xml/5.0/xsd/docbook.xsd'>
<info><copyright><year>2011-2014</year><holder>ForgeRock AS</holder></copyright></info>
<refmeta>
<refentrytitle>import-ldif</refentrytitle><manvolnum>1</manvolnum>
<refmiscinfo class="software">OpenDJ</refmiscinfo>
<refmiscinfo class="version"><?eval ${docTargetVersion}?></refmiscinfo>
</refmeta>
<refnamediv>
<refname>import-ldif</refname>
<refpurpose>import OpenDJ directory data from LDIF</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>import-ldif</command>
<arg choice="req">options</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>This utility can be used to import LDIF data into a directory server
backend.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are supported.</para>
<variablelist>
<varlistentry>
<term><option>-a, --append</option></term>
<listitem>
<para>Append to an existing database rather than overwriting it.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-A, --templateFile {templateFile}</option></term>
<listitem>
<para>Path to a MakeLDIF template to use to generate the import
data.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-b, --includeBranch {branchDN}</option></term>
<listitem>
<para>Base DN of a branch to include in the LDIF import.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-B, --excludeBranch {branchDN}</option></term>
<listitem>
<para>Base DN of a branch to exclude from the LDIF import.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-c, --isCompressed</option></term>
<listitem>
<para>LDIF file is compressed.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--countRejects</option></term>
<listitem>
<para>Count the number of entries rejected by the server and return that
value as the exit code (values &gt; 255 will be reduced to 255 due to exit
code restrictions).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-e, --excludeAttribute {attribute}</option></term>
<listitem>
<para>Attribute to exclude from the LDIF import.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-E, --excludeFilter {filter}</option></term>
<listitem>
<para>Filter to identify entries to exclude from the LDIF import.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-F, --clearBackend</option></term>
<listitem>
<para>Remove all entries for all base DNs in the backend before
importing.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-i, --includeAttribute {attribute}</option></term>
<listitem>
<para>Attribute to include in the LDIF import.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-I, --includeFilter {filter}</option></term>
<listitem>
<para>Filter to identify entries to include in the LDIF import.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-l, --ldifFile {ldifFile}</option></term>
<listitem>
<para>Path to the LDIF file to be imported.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-n, --backendID {backendName}</option></term>
<listitem>
<para>Backend ID for the backend to import.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-O, --overwrite</option></term>
<listitem>
<para>Overwrite an existing rejects and/or skip file rather than appending
to it.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-r, --replaceExisting</option></term>
<listitem>
<para>Replace existing entries when appending to the database.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-R, --rejectFile {rejectFile}</option></term>
<listitem>
<para>Write rejected entries to the specified file.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-s, --randomSeed {seed}</option></term>
<listitem>
<para>Seed for the MakeLDIF random number generator.</para>
<para>Default value: 0</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-S, --skipSchemaValidation</option></term>
<listitem>
<para>Skip schema validation during the LDIF import.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--skipDNValidation</option></term>
<listitem>
<para>Perform DN validation during later part of LDIF import.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--skipFile {skipFile}</option></term>
<listitem>
<para>Write skipped entries to the specified file.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--threadCount {count}</option></term>
<listitem>
<para>Number of threads used to read LDIF file during import. Default
value (0) equals: 2 x (number of CPUs).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--tmpdirectory {directory}</option></term>
<listitem>
<para>Path to temporary directory for index scratch files during LDIF
import.</para>
<para>Default value: <filename>import-tmp</filename></para>
</listitem>
</varlistentry>
</variablelist>
<refsect2>
<title>Task Backend Connection Options</title>
<variablelist>
<varlistentry>
<term><option>--connectTimeout {timeout}</option></term>
<listitem>
<para>Maximum length of time (in milliseconds) that can be taken to
establish a connection. Use '0' to specify no time out.</para>
<para>Default value: 30000</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-D, --bindDN {bindDN}</option></term>
<listitem>
<para>DN to use to bind to the server</para>
<para>Default value: cn=Directory Manager</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-h, --hostname {host}</option></term>
<listitem>
<para>Directory server hostname or IP address</para>
<para>Default value: localhost.localdomain</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-j, --bindPasswordFile {bindPasswordFile}</option></term>
<listitem>
<para>Bind password file</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-K, --keyStorePath {keyStorePath}</option></term>
<listitem>
<para>Certificate key store path</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-N, --certNickname {nickname}</option></term>
<listitem>
<para>Nickname of certificate for SSL client authentication</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-o, --saslOption {name=value}</option></term>
<listitem>
<para>SASL bind options</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-p, --port {port}</option></term>
<listitem>
<para>Directory server administration port number</para>
<para>Default value: 4444</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-P, --trustStorePath {trustStorePath}</option></term>
<listitem>
<para>Certificate trust store path</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-T, --trustStorePassword {trustStorePassword}</option></term>
<listitem>
<para>Certificate trust store PIN</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-u, --keyStorePasswordFile {keyStorePasswordFile}</option></term>
<listitem>
<para>Certificate key store PIN file</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-U, --trustStorePasswordFile {path}</option></term>
<listitem>
<para>Certificate trust store PIN file</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-w, --bindPassword {bindPassword}</option></term>
<listitem>
<para>Password to use to bind to the server</para>
<para>Use <option>-w -</option> to have the command prompt for the
password, rather than enter the password on the command line.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-W, --keyStorePassword {keyStorePassword}</option></term>
<listitem>
<para>Certificate key store PIN</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-X, --trustAll</option></term>
<listitem>
<para>Trust all server SSL certificates</para>
</listitem>
</varlistentry>
</variablelist>
</refsect2>
<refsect2>
<title>Task Scheduling Options</title>
<variablelist>
<varlistentry>
<term><option>--completionNotify {emailAddress}</option></term>
<listitem>
<para>Email address of a recipient to be notified when the task
completes. This option may be specified more than once.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--dependency {taskID}</option></term>
<listitem>
<para>ID of a task upon which this task depends. A task will not start
execution until all its dependencies have completed execution.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--errorNotify {emailAddress}</option></term>
<listitem>
<para>Email address of a recipient to be notified if an error occurs
when this task executes. This option may be specified more than
once.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--failedDependencyAction {action}</option></term>
<listitem>
<para>Action this task will take should one if its dependent tasks fail.
The value must be one of PROCESS, CANCEL, DISABLE. If not specified
defaults to CANCEL.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--recurringTask {schedulePattern}</option></term>
<listitem>
<para>Indicates the task is recurring and will be scheduled according
to the value argument expressed in crontab(5) compatible time/date
pattern.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-t, --start {startTime}</option></term>
<listitem>
<para>Indicates the date/time at which this operation will start when
scheduled as a server task expressed in YYYYMMDDhhmmssZ format for UTC
time or YYYYMMDDhhmmss for local time. A value of '0' will cause the
task to be scheduled for immediate execution. When this option is
specified the operation will be scheduled to start at the specified
time after which this utility will exit immediately.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect2>
<refsect2>
<title>Utility Input/Output Options</title>
<variablelist>
<varlistentry>
<term><option>--noPropertiesFile</option></term>
<listitem>
<para>No properties file will be used to get default command line
argument values</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--propertiesFilePath {propertiesFilePath}</option></term>
<listitem>
<para>Path to the file containing default property values used for
command line arguments</para>
</listitem>
</varlistentry>
</variablelist>
</refsect2>
<refsect2>
<title>General Options</title>
<variablelist>
<varlistentry>
<term><option>-V, --version</option></term>
<listitem>
<para>Display version information</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-?, -H, --help</option></term>
<listitem>
<para>Display usage information</para>
</listitem>
</varlistentry>
</variablelist>
</refsect2>
</refsect1>
<refsect1>
<title>Exit Codes</title>
<variablelist>
<varlistentry>
<term>0</term>
<listitem>
<para>The command completed successfully.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&gt; 0</term>
<listitem>
<para>An error occurred.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Examples</title>
<para>The following example imports the content of the LDIF file,
<filename>Example.ldif</filename>, with the server offline.</para>
<screen>
$ <userinput>import-ldif -b dc=example,dc=com -n userRoot -l /path/to/Example.ldif</userinput>
<computeroutput>[21/Jun/2011:13:38:03 +0200] category=RUNTIME_INFORMATION severity=NOTICE...
... msg=Import LDIF environment close took 0 seconds</computeroutput>
</screen>
</refsect1>
</refentry>