web-dev-qa-db-ja.com

エントリがすでに存在する場合の置換の自動サポートを備えたldapadd

私はldapaddldapmodifyでいくつかのテストを行ってきましたが、気付いたのは次のとおりです。

-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を使用します。

Q:それを処理するツールはありませんか?

追加情報:実行中openldap 2.4.21 オン ubuntu server 10.04

2
Max

-aフラグをldapmodifyに指定するか、エントリを追加する場合はchangetype: add行をLDIFデータに挿入し、changetype: modifyを入力してエントリを変更することができます。

3
Sven