SourceRebels 答案的问题是slapcat(8) 不保证数据是为ldapadd(1)/ldapmodify(1) 排序的。从手册页:
此工具生成的 LDIF 适合与 slapadd(8) 一起使用。
由于条目是按数据库顺序排列的,而不是优先顺序,它们
如果不先重新排序,则无法使用 ldapadd(1) 加载。
加上使用使用后端文件转储数据库的工具,然后使用通过ldap协议加载ldif的工具,不是很一致。
我建议使用slapcat(8)/slapadd(8) OR ldapsearch(1)/ldapmodify(1) 的组合。我更喜欢后者,因为它不需要 shell 访问 ldap 服务器或移动文件。
例如,从 dc=master,dc=com 下的主服务器转储数据库并将其加载到备份服务器中
$ ldapsearch -Wx -D "cn=admin_master,dc=master,dc=com" -b "dc=master,dc=com" -H ldap://my.master.host -LLL > ldap_dump-20100525-1。 ldif
$ ldapadd -Wx -D "cn=admin_backup,dc=backup,dc=com" -H ldap://my.backup.host -f ldap_dump-20100525-1.ldif
上面的 -W 标志提示输入 ldap admin_master 密码,但是由于我们将输出重定向到一个文件,您不会看到提示 - 只是一个空行。继续并输入您的 ldap admin_master 密码,它就会起作用。在运行 ldapadd 之前,需要删除输出文件的第一行(输入 LDAP 密码:)。
最后一个提示,ldapadd(1) 是到 ldapmodify(1) 的硬链接,-a(添加)标志已打开。