mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Mark Craig
13.42.2011 6e251eb24fa2ba5a82c8f389de5edc1fcbacf37f
Draft chapter on backup/restore, with 2 related <refentry>s
3 files modified
723 ■■■■■ changed files
opendj3/src/main/docbkx/admin-guide/chap-backup-restore.xml 176 ●●●●● patch | view | raw | blame | history
opendj3/src/main/docbkx/shared/man-backup.xml 295 ●●●● patch | view | raw | blame | history
opendj3/src/main/docbkx/shared/man-restore.xml 252 ●●●● patch | view | raw | blame | history
opendj3/src/main/docbkx/admin-guide/chap-backup-restore.xml
@@ -37,5 +37,181 @@
 of backup archives, as well as backing up server configuration
 information.</para>
 <section>
  <title>Backing Up Directory Data</title>
  <para>A <filename>bak/</filename> directory is provided when you install
  OpenDJ, as a location to save binary backups. When you create a backup,
  the <filename>bak/backup.info</filename> contains information about the
  archive.</para>
  <para>Archives produced by the <command>backup</command> command contain
  backups only of the directory data. Backups of server configuration are
  found in <filename>config/archived-configs/</filename>.</para>
  <procedure>
   <title>To Back Up Data Immediately</title>
   <step>
    <para>Use one of the following alternatives.</para>
    <stepalternatives>
     <step>
      <para>Back up only the database for Example.com, where the data
      is stored in the backend named <literal>userRoot</literal>.</para>
      <screen width="80">$ backup -p 5444 -D "cn=Directory Manager" -w password \
&gt; -n userRoot -d /path/to/OpenDJ/bak -t 0
Backup task 20110613143715983 scheduled to start Jun 13, 2011 2:37:15 PM CEST</screen>
     </step>
     <step>
      <para>Stop the server to back up Example.com data offline.</para>
      <screen width="80">$ stop-ds
Stopping Server...
[13/Jun/2011:14:31:00 +0200] category=BACKEND severity=NOTICE msgID=9896306
 msg=The backend userRoot is now taken offline
[13/Jun/2011:14:31:00 +0200] category=CORE severity=NOTICE msgID=458955
 msg=The Directory Server is now stopped
$ backup -n userRoot -d /path/to/OpenDJ/bak
[13/Jun/2011:14:33:48 +0200] category=TOOLS severity=NOTICE msgID=10944792
 msg=Starting backup for backend userRoot
[13/Jun/2011:14:33:48 +0200] category=JEB severity=NOTICE msgID=8847446
 msg=Archived: 00000000.jdb
[13/Jun/2011:14:33:48 +0200] category=TOOLS severity=NOTICE msgID=10944795
 msg=The backup process completed successfully
$ start-ds
... The Directory Server has started successfully</screen>
     </step>
     <step>
      <para>Back up all user data on the server.</para>
      <screen width="80">$ backup -p 5444 -D "cn=Directory Manager" -w password \
&gt; -a -d /path/to/OpenDJ/bak -t 0
Backup task 20110613143801866 scheduled to start Jun 13, 2011 2:38:01 PM CEST</screen>
     </step>
    </stepalternatives>
   </step>
  </procedure>
  <procedure>
   <title>To Schedule Data Backup</title>
   <para>You can schedule data backup using <command>crontab</command>
   format.</para>
   <step>
    <para>Back up all user data every night at 2 AM, and notify
    diradmin@example.com when finished, or on error.</para>
    <screen width="80">$ backup -p 5444 -D "cn=Directory Manager" -w password -a \
&gt; -d /path/to/OpenDJ/bak --recurringTask "00 02 * * *" \
&gt; --completionNotify diradmin@example.com --errorNotify diradmin@example.com
Recurring Backup task BackupTask-988d6adf-4d65-44bf-8546-6ea74a2480b0
scheduled successfully</screen>
   </step>
  </procedure>
 </section>
 <section>
  <title>Restoring Directory Data From Backup</title>
  <para>When you restore data, the procedure to follow depends on whether
  the OpenDJ directory server is replicated.</para>
  <procedure>
   <title>To Restore a Stand-alone Server</title>
   <step>
    <para>Use one of the following alternatives.</para>
    <stepalternatives>
     <step>
      <para>Stop the server to restore data for Example.com.</para>
      <screen width="80">$ stop-ds
Stopping Server...
[13/Jun/2011:15:44:06 +0200] category=BACKEND severity=NOTICE msgID=9896306
 msg=The backend userRoot is now taken offline
[13/Jun/2011:15:44:06 +0200] category=CORE severity=NOTICE msgID=458955
 msg=The Directory Server is now stopped
$ restore -d /path/to/OpenDJ/bak -l
Backup ID:          20110613080032
Backup Date:        13/Jun/2011:08:00:45 +0200
Is Incremental:     false
Is Compressed:      false
Is Encrypted:       false
Has Unsigned Hash:  false
Has Signed Hash:    false
Dependent Upon:     none
$ restore -d /path/to/OpenDJ/bak -I 20110613080032
[13/Jun/2011:15:47:41 +0200] category=JEB severity=NOTICE msgID=8847445
 msg=Restored: 00000000.jdb (size 341835)
$ start-ds
... The Directory Server has started successfully</screen>
     </step>
     <step>
      <para>Schedule the restore as a task to begin immediately.</para>
      <screen width="80">$ restore -p 5444 -D "cn=Directory Manager" -w password \
&gt; -d /path/to/OpenDJ/bak -I 20110613080032 -t 0
Restore task 20110613155052932 scheduled to start Jun 13, 2011 3:50:52 PM CEST</screen>
     </step>
    </stepalternatives>
   </step>
  </procedure>
  <procedure>
   <title>To Restore a Replica</title>
   <para>When you restore a replicated server from backup, make sure the
   backup is newer than the last purge of the replication change log (default:
   3 days).</para>
   <step>
    <para>Prepare the replica to be restored.</para>
    <screen width="80">$ dsreplication pre-external-initialization -I admin -w password -X -n \
&gt; -p 5444 -b dc=example,dc=com
Preparing base DN dc=example,dc=com to be initialized externally ..... Done.
Now you can proceed to the initialization of the contents of the base DN's
 on all the replicated servers.  You can use the command import-ldif or
 the binary copy to do so.  You must use the same LDIF file or binary copy
 on each server.
When the initialization is completed you must use the subcommand
 'post-external-initialization' for replication to work with the new
 base DN's contents.</screen>
   </step>
   <step>
    <para>Restore the server database from the backup archive.</para>
    <screen width="80">$ stop-ds
Stopping Server...
[13/Jun/2011:15:44:06 +0200] category=BACKEND severity=NOTICE msgID=9896306
 msg=The backend userRoot is now taken offline
[13/Jun/2011:15:44:06 +0200] category=CORE severity=NOTICE msgID=458955
 msg=The Directory Server is now stopped
$ restore -d /path/to/OpenDJ/bak -l
Backup ID:          20110613080032
Backup Date:        13/Jun/2011:08:00:45 +0200
Is Incremental:     false
Is Compressed:      false
Is Encrypted:       false
Has Unsigned Hash:  false
Has Signed Hash:    false
Dependent Upon:     none
$ restore -d /path/to/OpenDJ/bak -I 20110613080032
[13/Jun/2011:15:47:41 +0200] category=JEB severity=NOTICE msgID=8847445
 msg=Restored: 00000000.jdb (size 341835)
$ start-ds
... The Directory Server has started successfully</screen>
   </step>
   <step>
    <para>Reinitialize replication on the replica.</para>
    <screen width="80">$ dsreplication post-external-initialization -I admin -w password -X -n \
&gt; -p 5444 -b dc=example,dc=com
Updating replication information on base DN dc=example,dc=com ..... Done.
Post initialization procedure completed successfully.</screen>
   </step>
  </procedure>
 </section>
</chapter>
opendj3/src/main/docbkx/shared/man-backup.xml
@@ -35,72 +35,305 @@
 </refmeta>
 <refnamediv>
  <refname>backup</refname>
  <refpurpose>TODO one-line description</refpurpose>
  <refpurpose>back up OpenDJ directory data</refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <cmdsynopsis>
   <command>backup</command>
   <command><replaceable>subcommand</replaceable></command>
   <arg choice="opt">--options</arg>
   <arg choice="req">options</arg>
  </cmdsynopsis>
 </refsynopsisdiv>
 <refsect1>
  <title>Description</title>
  <para>TODO description.</para>
  <para>This utility can be used to back up one or more directory server
  backends.</para>
 </refsect1>
 <refsect1>
  <title>Global Options</title>
  <para>The following global options are supported.</para>
  <title>Options</title>
  <para>The following options are supported.</para>
  <variablelist>
   <varlistentry>
    <term><option>TODO</option></term>
    <term><option>-a, --backUpAll</option></term>
    <listitem>
     <para>TODO Description.</para>
     <para>Back up all backends in the server</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-A, --hash</option></term>
    <listitem>
     <para>Generate a hash of the backup contents</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-B, --incrementalBaseID {backupID}</option></term>
    <listitem>
     <para>Backup ID of the source archive for an incremental backup.</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-c, --compress</option></term>
    <listitem>
     <para>Compress the backup content</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-d, --backupDirectory {backupDir}</option></term>
    <listitem>
     <para>Path to the target directory for the backup file(s)</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-i, --incremental</option></term>
    <listitem>
     <para>Perform an incremental backup rather than a full backup</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-I, --backupID {backupID}</option></term>
    <listitem>
     <para>Use the provided identifier for the backup</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-n, --backendID {backendName}</option></term>
    <listitem>
     <para>Backend ID for the backend to archive</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-s, --signHash</option></term>
    <listitem>
     <para>Sign the hash of the backup contents</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-y, --encrypt</option></term>
    <listitem>
     <para>Encrypt the backup contents</para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>
 <refsect1>
  <title>Subcommands</title>
  <para>The following subcommands are supported.</para>
  <refsect2>
   <para>TODO Description.</para>
   <cmdsynopsis>
    <command>backup</command>
    <command>TODO</command>
    <arg choice="opt">--options</arg>
   </cmdsynopsis>
   <title>Task Backend Connection Options</title>
   <variablelist>
    <varlistentry>
     <term><option>TODO</option></term>
     <term><option>--connectTimeout {timeout}</option></term>
     <listitem>
      <para>TODO description.</para>
      <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>
     </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>Files</title>
  <para>TODO if command has configuration file.</para>
 </refsect1>
 <refsect1>
  <title>Environment</title>
  <para>TODO if command reads environment variables.</para>
 </refsect1>
 <refsect1>
  <title>Exit Codes</title>
   <variablelist>
    <varlistentry>
     <term>TODO exit code</term>
     <term>0</term>
     <listitem>
      <para>TODO description.</para>
      <para>The command completed successfully.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term>1</term>
     <listitem>
      <para>An error occurred while parsing the command-line arguments.</para>
     </listitem>
    </varlistentry>
   </variablelist>
 </refsect1>
 <refsect1>
  <title>Examples</title>
  <para>TODO</para>
  <para>The following example backs up all user data on the server.</para>
  <screen width="80">$ backup -p 5444 -D "cn=Directory Manager" -w password \
&gt; -a -d /path/to/OpenDJ/bak -t 0
Backup task 20110613143801866 scheduled to start Jun 13, 2011 2:38:01 PM CEST</screen>
  <para>The following example schedules back up of all user data every night at
  2 AM, and notifies diradmin@example.com when finished, or on error.</para>
  <screen width="80">$ backup -p 5444 -D "cn=Directory Manager" -w password -a \
&gt; -d /path/to/OpenDJ/bak --recurringTask "00 02 * * *" \
&gt; --completionNotify diradmin@example.com --errorNotify diradmin@example.com
Recurring Backup task BackupTask-988d6adf-4d65-44bf-8546-6ea74a2480b0
scheduled successfully</screen>
 </refsect1>
</refentry>
opendj3/src/main/docbkx/shared/man-restore.xml
@@ -35,72 +35,262 @@
 </refmeta>
 <refnamediv>
  <refname>restore</refname>
  <refpurpose>TODO one-line description</refpurpose>
  <refpurpose>restore OpenDJ directory data backups</refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <cmdsynopsis>
   <command>restore</command>
   <command><replaceable>subcommand</replaceable></command>
   <arg choice="opt">--options</arg>
   <arg choice="req">options</arg>
  </cmdsynopsis>
 </refsynopsisdiv>
 <refsect1>
  <title>Description</title>
  <para>TODO description.</para>
  <para>This utility can be used to restore a backup of a directory server
     backend.</para>
 </refsect1>
 <refsect1>
  <title>Global Options</title>
  <para>The following global options are supported.</para>
  <title>Options</title>
  <para>The following options are supported.</para>
  <variablelist>
   <varlistentry>
    <term><option>TODO</option></term>
    <term><option>-d, --backupDirectory {backupDir}</option></term>
    <listitem>
     <para>TODO Description.</para>
     <para>Path to the target directory for the backup file(s)</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-I, --backupID {backupID}</option></term>
    <listitem>
     <para>Use the provided identifier for the backup</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-l, --listBackups</option></term>
    <listitem>
     <para>List available backups in the backup directory</para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><option>-n, --dry-run</option></term>
    <listitem>
     <para>Verify the contents of the backup but do not restore it</para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>
 <refsect1>
  <title>Subcommands</title>
  <para>The following subcommands are supported.</para>
  <refsect2>
   <para>TODO Description.</para>
   <cmdsynopsis>
    <command>restore</command>
    <command>TODO</command>
    <arg choice="opt">--options</arg>
   </cmdsynopsis>
   <title>Task Backend Connection Options</title>
   <variablelist>
    <varlistentry>
     <term><option>TODO</option></term>
     <term><option>--connectTimeout {timeout}</option></term>
     <listitem>
      <para>TODO description.</para>
      <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>
     </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>Files</title>
  <para>TODO if command has configuration file.</para>
 </refsect1>
 <refsect1>
  <title>Environment</title>
  <para>TODO if command reads environment variables.</para>
 </refsect1>
 <refsect1>
  <title>Exit Codes</title>
   <variablelist>
    <varlistentry>
     <term>TODO exit code</term>
     <term>0</term>
     <listitem>
      <para>TODO description.</para>
      <para>The command completed successfully.</para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term>1</term>
     <listitem>
      <para>An error occurred while parsing the command-line arguments.</para>
     </listitem>
    </varlistentry>
   </variablelist>
 </refsect1>
 <refsect1>
  <title>Examples</title>
  <para>TODO</para>
  <para>The following example schedules a restore as a task to begin
  immediately.</para>
  <screen width="80">$ restore -p 5444 -D "cn=Directory Manager" -w password \
&gt; -d /path/to/OpenDJ/bak -I 20110613080032 -t 0
Restore task 20110613155052932 scheduled to start Jun 13, 2011 3:50:52 PM CEST</screen>
 </refsect1>
</refentry>