summaryrefslogtreecommitdiffstats
path: root/roles/common-LDAP/files/usr/local/sbin/slapcat-all.sh
blob: 4e5b5e4bce582db0135d25624b7b23331d5b7db3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/sh

# Usage: slapcat-all.sh DIR
# Save all LDAP databases in DIR: DIR/0.ldif, DIR/1.ldif, ...

set -ue
PATH=/usr/sbin:/sbin:/usr/bin:/bin

target="$1"
umask 0077

slapcat -n0 -l"$target/0.ldif"
n=$(grep -Ec '^dn:\s+olcDatabase={[1-9][0-9]*}' "$target/0.ldif")

while [ $n -gt 0 ]; do
    slapcat -n$n -l"$target/$n.ldif"
    n=$(( $n - 1 ))
done