openldap的数据备份,可以通过slapcat和ldapsearch两种方式来进行。
openldap的数据恢复,则使用slapadd命令。
一、OpenLDAP备份
1.1 全量备份数据
1.1.1 使用slapcat备份
slapcat命令只能在openldap服务器上执行
1 | [admin@localhost ~]$ sudo slapcat -n 2 -l ~/ldap_bak.ldif |
查看备份文件内容
1 | [admin@localhost ~]$ cat ldap_bak.ldif | more |
1.1.2 使用ldapsearch备份
ldapsearch命令可以在openldap服务器或者openldap客户端上执行
1 | [admin@localhost ~]$ ldapsearch -x -D "cn=admin,dc=sys,dc=com" -w "abc.123456" -b "dc=sys,dc=com" -LLL -H ldap://192.168.10.74 > ~/ldap_bak.ldif |
以上是使用用户密码验证方式备份,如果openldap允许匿名访问的话,执行命令如下:
1 | [admin@localhost ~]$ ldapsearch -x -b "dc=sys,dc=com" -H ldap://192.168.10.74 -LLL > ~/ldap_bak.ldif |
1.3 备份指定basedn数据
例如,只备份用户数据,可以指定用户所在basedn,例如:cn=users,dc=sys,dc=com
1 | [admin@localhost ~]$ ldapsearch -x -D "cn=admin,dc=sys,dc=com" -w "abc.123456" -b "cn=users,dc=sys,dc=com" -LLL -H ldap://192.168.10.74 > ~/uesrs_bak.ldif |
二、OpenLDAP恢复
2.1 全量数据恢复
关闭openldap服务,并删除数据
1 | [admin@localhost ~]$ sudo systemctl stop slapd |
导入openldap备份数据
1 | [admin@localhost ~]$ sudo slapadd -l ~/ldap_bak.ldif |
复制DB配置文件
1 | [admin@localhost ~]$ sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG |
调整ldap目录属性
1 | [admin@localhost ~]$ sudo chown ldap:ldap -R /var/lib/ldap/ |
启动OpenLDAP服务
1 | [admin@localhost ~]$ sudo systemctl start slapd |
2.2 恢复指定basedn数据
恢复指定basedn数据时,需要只有basedn的备份数据,或从全量数据中摘出来需要恢复的basedn数据的单独ldif文件
例如,恢复用户所在的basedn数据
1 | [admin@localhost ~]$ ldapadd -H ldap://192.168.10.74 -x -D "cn=admin,dc=sys,dc=com" -w "abc.123456" -f ~/uesrs_bak.ldif |
需要注意的是,要提前确保需要恢复的basedn和basedn下的数据不能重复,否则遇到重复的数据会失败并退出,可以提前将重复的数据删除再进行恢复或者恢复到一个新的basedn(需要改备份文件的basedn相关内容)