我知道这更像是一个serverfault问题,而不是stackoverflow问题,但既然serverfault还没有出现,我来:

我应该将一个应用程序从一个redhat服务器移动到另一个服务器,在不了解应用程序内部工作原理的情况下,如何将OpenLDAP数据库从一台机器移动到另一台机器,以及模式和所有模式.

我需要复制哪些文件?我相信设置是相当标准的.

推荐答案

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.

另外,使用一个使用后端文件转储数据库的工具,然后使用一个通过ldap协议加载ldif的工具是不太一致的.

我建议使用slapcat(8)/slapadd(8)OR/ldapmodify(1)的组合.我更喜欢后者,因为它不需要对ldap服务器进行shell访问,也不需要四处移动文件.

例如,在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 password,但由于我们将输出重定向到一个文件,您将看不到提示——只是一个空行.继续输入ldap管理员主密码,它就会工作.在运行ldapadd之前,需要删除输出文件的第一行(输入LDAP密码:).

最后一个提示是,在-a(添加)标志打开的情况下,ldapadd(1)是指向ldapmodify(1)的硬链接.

Linux相关问答推荐

抛出主,即未捕获到SIGSEGV中的异常结果

一个bash脚本,用于基于2列映射文件替换多个文件名中的模式

在Groff mm中定义页眉不会更改第一页中的页眉

std::chrono::time_zone 在不同操作系统上不可用

Linux BlueZ 5.65 hcitool 结合服务 UUID 和制造数据广告

文件未在脚本中使用 cp 命令复制到 Docker 容器中

如果 bash 中已经存在文件名,则创建新文件但添加数字

tmux:挂起不加载,不响应任何选项命令

使用 Bash 获取特定文件的 mtime?

查看 linux 上的多核或多 CPU 利用率

为什么在 Linux 中使用 select

禁用内存地址的随机化

低功耗蓝牙:在 linux 中监听通知/指示

在 Python 中删除 Root 权限

Windows 开发环境值得付出代价吗?

是否有git sed或类似功能?

Linux:处理成服务

在 Linux 上更新 PyCharm

PostgreSQL psql 终端命令

当系统说当前在进程中使用时,如何在linux中删除用户