Проблема с SourceRebels ответом является то, что slapcat(8)
не гарантирует, что данные заказаны для ldapadd(1)
/ ldapmodify(1)
. Со страницы руководства:
The LDIF generated by this tool is suitable for use with slapadd(8).
As the entries are in database order, not superior first order, they
cannot be loaded with ldapadd(1) without first being reordered.
Плюс использование инструмента, который использует файлы бэкэнда для выгрузки базы данных, а затем использование инструмента, который загружает ldif по протоколу ldap, не очень согласовано.
Я бы предложил использовать комбинацию slapcat(8)
/ slapadd(8)
ИЛИ ldapsearch(1)
/ ldapmodify(1)
. Я предпочел бы последнее, поскольку ему не нужен доступ оболочки к серверу 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, однако, поскольку мы перенаправляем вывод в файл, вы не увидите приглашение - просто пустая строка. Идите дальше и введите свой пароль администратора ldap, и он будет работать. Первую строку вашего выходного файла необходимо удалить (введите LDAP Password :) перед запуском ldapadd.
Последний совет, ldapadd(1)
- это жесткая ссылка на ldapmodify(1)
с включенным флагом -a
(добавить).