openLDAP备份与恢复

发布时间 2023-03-22 21:14:14作者: 米兰的小铁將

一、备份

1、执行备份命令

方式1(一般用这个):

slapcat -v -l  /data/ldapbackup.ldif

方式2:

ldapsearch -x -b 'dc=abc,dc=com'  -H ldap://172.29.xxx.xxx:389 -D "cn=Manager,dc=abc,dc=com" -W  > ldapbackup.ldif

 

二、恢复数据

说明:

由于slapcat备份出来的ldapback.ldif中有系统自动生成的系统信息不能导入,需要清除
解决方案:清除ldapback.ldif中的系统信息

1、编写一个正则文件,用来清除ldapback.ldif中的系统信息

cat >slapcat.regex <<EOF
/^creatorsName: /d
/^createTimestamp: /d
/^modifiersName: /d
/^modifyTimestamp: /d
/^structuralObjectClass: /d
/^entryUUID: /d
/^entryCSN: /d
EOF

 

2、执行过滤清除

cat ldapback.ldif | sed -f slapcat.regex > slapdata.ldif

 

3、导入数据

ldapadd -x -D "cn=Manager,dc=abc,dc=com" -H ldap://172.29.xx.xxx -W -f slapdata.ldif    (一般用这个)

或者:

slapadd -l slapdate.ldif

或者:

如果安装了phpldapadmin,也可以在web上面导入;

 

三、最后来一个最简单的备份脚本

#!/bin/bash
DATE1=$(date "+%Y-%m-%d")
bak_dir="/data/ldap_bak"

#判断备份存储目录是否存在,不存在则创建
[ -d ${bak_dir} ] || mkdir -p ${bak_dir}
#执行备份
/sbin/slapcat -v -l ${bak_dir}/ldapbackup_${DATE1}.ldif #删除10天前的备份 find ${bak_dir} -mtime +10 -name "*.ldif" -exec rm -rf {} \; >& /dev/null