Bash OpenLDAP:从cn=config获取'directory'

Bash OpenLDAP:从cn=config获取'directory',bash,ldap,Bash,Ldap,如何通过一个ldapsearch请求为指定的DN获取目录 我的意思是-我几乎没有数据库OpenLDAP配置为cn=config。对于每个DN-it都有自己的ldif文件,其中指定了它的olcDbDirectory 我可以为每个DN获取olcdb目录值吗 对于备份脚本-我需要设置包含目录的varibale,对于每个DN,这个变量每次都会更改,此时备份/恢复 所以-在bash中,我刚刚找到了创建函数的解决方案,如: #!/bin/bash getDir () { file=`grep -R

如何通过一个
ldapsearch
请求为指定的DN获取目录

我的意思是-我几乎没有数据库OpenLDAP配置为
cn=config
。对于每个DN-it都有自己的ldif文件,其中指定了它的
olcDbDirectory

我可以为每个DN获取
olcdb目录
值吗

对于备份脚本-我需要设置包含目录的varibale,对于每个DN,这个变量每次都会更改,此时备份/恢复

所以-在
bash
中,我刚刚找到了创建函数的解决方案,如:

 #!/bin/bash

 getDir () {
 file=`grep -R "$1" /etc/openldap/slapd.d/ | cut -d":" -f 1 | tail -n 1`
 echo $file

 dir=`cat $file | grep "olcDbDirectory" | awk '{print $2}'`
 echo $dir
 }

 getDir testdb;

 $ ./dn.sh
 /etc/openldap/slapd.d/cn=config/olcDatabase={9}bdb.ldif
 /var/lib/ldap/testdb
但这个解决方案似乎不整洁。。。我更倾向于使用类似于:

 getDir () {
 dir=`ldapsearch -x -D "cn-root,cn=config" "*somefilter*"
 }
这是:

 $ ldapsearch -x -LLL -D 'cn=root,cn=config' -w PassWord -b 'cn=config' '(&(olcDbDirectory=*)(olcSuffix='testdb'))' olcDbDirectory | grep "olcDbDirectory" | cut -d":" -f 2
 /var/lib/ldap/testdb
bash函数中的函数:

 #!/bin/bash

 getDir () {

 dirtodel=`ldapsearch -x -LLL -D 'cn=root,cn=config' -w PassWord  -b 'cn=config' '(&(olcDbDirectory=*)(olcSuffix='${1}'))' olcDbDirectory | grep "olcDbDirectory" | cut -d":" -f 2`
 echo $dirtodel
 }

 getDir 'dc=testdb'
结果:

 $ ./dn.sh
 /var/lib/ldap/testdb

请编辑您的问题,以包含来自ldapsearch的样本(净化)数据。祝你好运