#!/bin/bash . /usr/share/dirsrv/data/DSSharedLib libpath_add "/usr/lib/x86_64-linux-gnu/dirsrv/" libpath_add "" libpath_add "/usr/lib/x86_64-linux-gnu" libpath_add "/usr/lib/x86_64-linux-gnu" export LD_LIBRARY_PATH SHLIB_PATH=$LD_LIBRARY_PATH export SHLIB_PATH usage() { echo "Usage: ldif2db [-Z serverID] -n backendname {-s includesuffix}* [{-x excludesuffix}*] {-i ldiffile}*" echo " [-c chunksize] [-g [string]] [-G namespace_id] [-O] [-E] [-q] [-v] [-h]" echo "Note: either \"-n backend\", \"-s includesuffix\", and \"-i ldiffile\" are required." echo "Options:" echo " -Z serverID - The server instance identifier" echo " -n backend - Backend database name. Example: userRoot" echo " -s inclduesuffix - Suffix to include" echo " -x excludesuffix - Suffix to exclude" echo " -i ldiffile - LDIF file name" echo " -c chunksize - Number of entries to process before starting a new pass" echo " -g [string] - String is \"none\" or \"deterministic\"" echo " \"none\" - unique id is not generated" echo " \"deterministic\" - generate name based unique id (-G name)" echo " By default - generate time based unique id" echo " -G name - Namespace id for name based uniqueid (-g deterministic)" echo " -O - Do not index the attributes" echo " -E - Encrypt attributes" echo " -q - Quiet mode - suppresses output" echo " -v - Display version" echo " -h - Display usage" } handleopts() { while [ "$1" != "" ] do if [ "$1" = "-q" ]; then return 1 elif [ "$1" = "-Z" ]; then shift servid=$1 elif [ "$1" = "-h" ]; then usage exit 0 fi shift done return 0 } while getopts "Z:vhd:i:g:G:n:s:x:NOCc:St:D:Eq" flag do case $flag in h) usage exit 0;; Z) servid=$OPTARG;; n) args=$args" -n \"$OPTARG\"";; i) args=$args" -i \"$OPTARG\"";; s) args=$args" -s \"$OPTARG\"";; x) args=$args" -x \"$OPTARG\"";; c) args=$args" -c \"$OPTARG\"";; d) args=$args" -d \"$OPTARG\"";; g) args=$args" -g \"$OPTARG\"";; G) args=$args" -G \"$OPTARG\"";; t) args=$args" -t \"$OPTARG\"";; D) args=$args" -D \"$OPTARG\"";; E) args=$args" -E";; v) args=$args" -v";; N) args=$args" -N";; C) args=$args" -C";; S) args=$args" -S";; O) args=$args" -O";; q) args=$args" -q";; ?) usage exit 1;; esac done if [ $# -lt 4 ] then usage exit 1 fi ARGS=$@ shift $(($OPTIND - 1)) if [ $1 ] then echo "ERROR - Unknown option: $1" usage exit 1 fi # FIXME look up if not master initfile="/etc/default/dirsrv-master" if [ $? -eq 1 ] then usage echo "You must supply a valid server instance identifier. Use -Z to specify instance name" echo "Available instances: $initfile" exit 1 fi . $initfile handleopts $ARGS quiet=$? if [ $quiet -eq 0 ]; then echo importing data ... fi eval /usr/sbin/ns-slapd ldif2db -D $CONFIG_DIR $args 2>&1 exit $?