Backup e restauração
Usando ldapsearch
root@ldap-01:~# ldapsearch -x -D cn=Manager,dc=example,dc=com -W -b dc=example,dc=com -LLL > backup.ldif
Usando slapcat
root@ldap-01:~# slapcat > /etc/openldap/backup2.ldif
Restaurando o backup
root@ldap-01:~# systemctl stop slapd
root@ldap-01:~# rm -rf /var/lib/ldap/
root@ldap-01:~# install -m 644 -o ldap -g ldap /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
root@ldap-01:~# slapadd -l /etc/openldap/backup.ldif
root@ldap-01:~# slapindex -v
root@ldap-01:~# chown ldap:ldap /var/lib/ldap/*
root@ldap-01:~# chcon -u system_u -r object_r -t slapd_db_t /var/lib/ldap/*
root@ldap-01:~# systemctl start slapd
root@ldap-01:~# ldapsearch -x -D cn=Manager,dc=example,dc=com -W -b dc=example,dc=com -LLL
Script de Backup
root@ldap-01:~# cat /etc/openldap/backup_slapd.sh
#!/bin/bash
## Variaveis
SERVER="$(hostname -s)"
DIRECTORY="/etc/openldap/"
DATE=$(date +%d-%m-%Y)
FILE="bkp-$SERVER.$DATE.ldif"
## Begin Script
# Armazena no log a hora em que irá iniciar o backup.
logger -p local4.info "Backup da base no servidor $SERVER iniciado"
# Faz o backup local usando o comando slapcat
slapcat > $DIRECTORY/$FILE
# Exporta variavel END registrando o horário que o backup terminou
export END=$(date +%Y-%m-%d\ %H:%M:%S)
# Testa o Backup com o slapadd em módulo dry-run direcionando Saida para /dev/null
slapadd -u -l $DIRECTORY/$FILE > /dev/null 2> /dev/null
# Condicao que valida se o backup foi realizado com Sucesso ou Nao
if [ $? -eq 0 ]
then
logger -p local4.info "Backup da base do servidor $SERVER finalizado com sucesso, Arquivo: $FILE"
else
logger -p local4.info "ERRO - Falha na construção do backup do servidor $SERVER, Arquivo: $FILE"
fi
root@ldap-01:~# chmod u+x /etc/openldap/backup_slapd.sh
root@ldap-01:~# bash /etc/openldap/backup_slapd.sh
root@ldap-01:~# ls -l /etc/openldap/bkp-ldap-01.27-03-2017.ldif
-rw-r--r--. 1 root root 13986 Mar 27 16:54 /etc/openldap/bkp-ldap-01.27-03-2017.ldif
root@ldap-01:~# cp /etc/openldap/backup_slapd.sh /etc/cron.daily/