Você pode fornecer o sinal -a
para ldapmodify
ou colocar a linha changetype: add
em seus dados LDIF se adicionar uma entrada e changetype: modify
para modificar a entrada.
Eu tenho feito alguns testes com ldapadd
e ldapmodify
e o que eu notei é:
- ldapadd
falhará se a entrada já existir:
=> hdb_tool_entry_put: txn_aborted! DB_KEYEXIST: Key/data pair already exists (-30995)
ldapadd: could not add entry dn="[email protected],ou=People,dc=example,dc=org" (line=1): txn_aborted! DB_KEYEXIST: Key/data pair already exists (-30995)
- ldapmodify
falhará se a entrada não:
modifying entry "[email protected],ou=People,dc=example,dc=org"
ldap_modify: No such object (32)
matched DN: ou=People,dc=example,dc=org
Portanto, ao restaurar um backup em um banco de dados existente com algumas entradas existentes e algumas ausentes, você não pode usar apenas uma dessas ferramentas, é necessário criar uma rotina que:
-e exclui todos os usuários que já existem no banco de dados e estão presentes no backup e, em seguida, importam usando ldapadd
.
-ou converte o arquivo ldif de backup para ser compatível com ldapmodify (adicione ou modifique dependendo de o usuário existir) e use ldapmodify
.
P: Não há uma ferramenta que cuide disso para você?
Informações adicionais: executando openldap 2.4.21
em ubuntu server 10.04