120 lines
3.3 KiB
Bash
Executable File
120 lines
3.3 KiB
Bash
Executable File
#!/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 $?
|