ldapadd com suporte automático para substituir se a entrada já existir

2

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

    
por Max 02.12.2011 / 08:56

1 resposta

3

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.

    
por 02.12.2011 / 10:32