/usr/sbin/db2ldif is in 389-ds-base 1.3.4.9-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | #!/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
cwd=`pwd`
usage()
{
    echo "Usage: db2ldif [-Z serverID] {-n backend_instance}* | {-s includesuffix}* [{-x excludesuffix}*] [-a outputfile]"
    echo "               [-E] [-r] [-u] [-U] [-m] [-1] [-q] [-h]"
    echo "Note: either \"-n backend\" or \"-s includesuffix\" is required."
    echo "Options:"
    echo "        -Z serverID       - Server instance identifier"
    echo "        -n backend        - Backend database name.  Example: userRoot"
    echo "        -s inclduesuffix  - Suffix to include"
    echo "        -x                - Suffix to exclude"
    echo "        -a outputfile     - Name of the exported LDIF file"
    echo "        -r                - Include replication data"
    echo "        -E                - Decrypt attributes"
    echo "        -u                - Do not export the nsUniqueId attribute"
    echo "        -U                - Do not wrap long lines"
    echo "        -m                - Do not base64 encode values"
    echo "        -1                - Do not include version text"
    echo "        -q                - Quiet mode - suppresses output"
    echo "        -h                - Display usage" 
}
make_ldiffile()
{
    be=""
    while [ "$1" != "" ]
    do
        if [ "x$1" = "x-a" ]; then
            shift
            if [ `expr "$1" : "/.*"` -gt 0 ]; then 
	            if [ `expr "$1" : "/.*"` -gt 0 ]; then 
	                # full path 
	                echo $1 
	                return 1 
	            else 
	                echo $cwd/$1 
	                shift 
	                return 0 
	            fi 
            else 
                echo $cwd/$1 
                shift 
                return 0 
            fi
        elif [ "x$1" = "x-n" ]; then
            shift
            if [ -z "$be" ]; then
                be="$1"
            else
                tmpbe="$be"
                be="${tmpbe}-$1"
            fi
        elif [ "x$1" = "x-s" ]; then
            shift
            if [ -n "$1" ]; then
                rdn=`echo $1 | awk -F, '{print $1}'`
                rdnval=`echo $rdn | awk -F= '{print $2}'`
                if [ "$be" = "" ]; then
                    be="$rdnval"
                else
                    tmpbe="$be"
                    be="${tmpbe}-$rdnval"
                fi
            fi
        elif [ "x$1" = "x-M" ]; then
            be=""
        fi
        if [ -n "$1" ]; then
            shift
        fi
    done
    if [ -z "$be" ]; then
        echo /var/lib/dirsrv/slapd-$servid/ldif/$servid-`date +%Y_%m_%d_%H%M%S`.ldif
    else
        echo /var/lib/dirsrv/slapd-$servid/ldif/$servid-${be}-`date +%Y_%m_%d_%H%M%S`.ldif
    fi
    return 0
}
if [ $# -lt 2 ];
then
    usage
    exit 1
fi
while getopts "hZ:vd:D:ENa:rs:x:CSut:n:UmMo1qc:" flag
do
    case $flag in
        h) usage
           exit 0;;
        Z) servid=$OPTARG;; 
        n) benameopt="-n $OPTARG"
           required_param="yes";;
        s) includeSuffix="-s \"$OPTARG\""
           required_param="yes";;
        x) excludeSuffix="-x \"$OPTARG\"";;
        a) outputFile="-a \"$OPTARG\"";;
        d) args=$args" -d \"$OPTARG\"";;
        D) args=$args" -D \"$OPTARG\"";;
        N) args=$args" -N";;
        E) args=$args" -E";;
        S) args=$args" -S";;
        v) args=$args" -v";;
        r) args=$args" -r";;
        C) args=$args" -C";;
        u) args=$args" -u";;
        U) args=$args" -U";;
        m) args=$args" -m";;
        M) args=$args" -M";;
        1) args=$args" -1";;
        q) args=$args" -q";;        
        c) cwd=$OPTARG;;
        ?) usage
           exit 1;;
    esac
done
if [ "$required_param" != "yes" ]
then
    usage
    exit 1
fi
initfile=$(get_init_file "/etc/default" $servid)
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
servid=`normalize_server_id $initfile`
. $initfile
ldif_file=`make_ldiffile $@`
rn=$?
echo "Exported ldif file: $ldif_file"
if [ $rn -eq 1 ]
then
    eval /usr/sbin/ns-slapd db2ldif -D $CONFIG_DIR $benameopt $includeSuffix $excludeSuffix $outputFile $args
else
    eval /usr/sbin/ns-slapd db2ldif -D $CONFIG_DIR $benameopt $includeSuffix $excludeSuffix $args -a $ldif_file
fi
 |