backup du ldap

#!/bin/bash

if [ "$1" == "--before" ]; then
    for dir in `find /etc/dirsrv/ -mindepth 1 -maxdepth 1 -type d \
            -name "slapd-*" | xargs -n 1 basename`; do

        for nsdb in `find /var/lib/dirsrv/${dir}/db/ -mindepth 1 \
                -maxdepth 1 -type d | xargs -n 1 basename`; do

            ns-slapd db2ldif -D /etc/dirsrv/${dir} -n ${nsdb} \
                -a /tmp/$(hostname)-$(echo ${dir} | sed -e 's/slapd-//g')-${nsdb}.ldif \
                >/dev/null 2>&1

        done
    done

elif [ "$1" == "--after" ]; then
    rm -rf /tmp/*.ldif
fi

restauration du ldap

Il faut d'abord stoper le service

service dirsrv stop
ns-slapd ldif2db -D /etc/dirsrv/slapd-*$instance_name* -n *$database_name* -i /path/to/exported/database.ldif

*$instance_name* est égale au nom du serveur par exemple pour mon serveur s’appelant web.opensrc.fr le nom de l’instance sera web *$database_name* est egale au dc du ldap par exemple dans mon cas dc=opensrc,dc=fr donnera opensrc_fr