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 $?
 |