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的样本(净化)数据。祝你好运