我一直在做一些testing与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
因此,在现有的数据库上恢复备份时,如果存在一些现有的和缺less的条目,则不能只使用这些工具中的任何一个,则需要创build一个例程:
– 删除数据库中已经存在并存在于备份中的所有用户,然后使用ldapadd导入。
– 或将备份ldif文件转换为ldapmodify兼容(根据用户是否存在添加或修改)并使用ldapmodify 。
问:没有一种工具可以帮你照顾吗?
其他信息:在ubuntu server 10.04上运行openldap 2.4.21
您可以将-a标志设置为ldapmodify或者将行changetype: add放入您的LDIF数据(如果添加条目),并将changetype: modify修改为条目。