如果条目已存在,ldapadd 将自动支持替换

如果条目已存在,ldapadd 将自动支持替换

我已经进行了一些测试ldapadd并且ldapmodify我注意到的是:

-ldapadd如果条目已经存在,将会失败:

=> 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如果条目不存在,则会失败:

modifying entry "[email protected],ou=People,dc=example,dc=org"
ldap_modify: No such object (32)
matched DN: ou=People,dc=example,dc=org

因此,当在现有数据库上恢复某些现有和缺失条目的备份时,您不能只使用这两种工具中的任何一种,而需要创建一个例程:
- 删除数据库中已存在并出现在备份中的所有用户,然后使用导入ldapadd。-
或将备份 ldif 文件转换为 ldapmodify 兼容(根据用户是否存在进行添加或修改)并使用ldapmodify

问:没有一个工具可以帮你解决这个问题吗?

附加信息:正在openldap 2.4.21运行ubuntu server 10.04

答案1

如果您添加条目,您可以给出-a标志ldapmodify或将该行放入您的 LDIF 数据中,并修改该条目。changetype: addchangetype: modify

相关内容