Antes de mais nada, você deve estar ciente das limitações do :
do slapcatFor some backend types, your slapd(8) should not be running
(at least, not in read-write mode) when you do this to ensure
consistency of the database. It is always safe to run slapcat
with the slapd-bdb(5), slapd-hdb(5), and slapd-null(5) backends.
Portanto, é melhor empacotar esse backup em /etc/init.d/ldap stop
e /etc/init.d/ldap start
também.
Antes de reiniciar ldap
no procedimento de restauração, você pode despejar os dados recém-carregados em um arquivo temporário e compará-los ao arquivo LDIF que você acabou de usar como entrada. Tenho certeza que a saída LDIF para slapcat
é classificada por Nomes Distintos, portanto, um diff
deve sair com o código de saída 0.
...
chown ldap:ldap *
slapcat -l /var/tmp/test.ldif
diff /var/tmp/test.ldif /backup/openldap/backup_ldap2.diff
if [ $? != 0 ] ; then
echo 'differences found'
fi
/etc/init.d/ldap start
Isso pressupõe que slapcat
esteja funcionando corretamente. Se você não confia que deve extrair todos os dados relevantes para você , do banco de dados em execução com ldap_search_ext()
, gere alguma saída (dump ou soma de verificação), e compare isso com a execução do mesmo código no banco de dados restaurado (depois de iniciar ldap
, claro). Dessa forma, você notaria se alguns dados relevantes para o seu uso são deixados de fora do dump por slapcat
(improvável, mas possível se tiver um bug)