![]() |
Bash ldapsearch дата whencreated в виде переменной
Всем привет!
У меня есть bash скрипт, который выгружает пользователей из Active Directory с помощью ldapsearch. Скрипт
#!/bin/bash
source /home/myproject/scripts/config.sh #-----------------------------------LDAP QUERY---------------------------------- echo "start ldapsearch" #BTS ldapsearch, calculate and curl to dashboard ldapsearch -x -H ldap://$ad -D $aduser -w $adpassword -b 'OU=Users,OU=Test,DC=sec,DC=local' '(&(objectCategory=person)(objectClass=user) (!(userAccountControl:1.2.840.113556.1.4.803:=2))(whencreated<=20240520000000.0Z))' | grep 'mail: ' | cut -d" " -f2 > ./users.txt Этот скрипт использует переменные $ad, $aduser, $adpassword с другого файла config.sh для подключения к Active Directory и вытаскивает только включенных пользователей, которые были созданы до 20.05.2024. Теперь стоит задача - перенести дату 20240520000000.0Z в config.sh, чтобы не менять ее постоянно во всех скриптах и дёргать дату в виде переменной в этот скрипт. Если я подправлю LDAP-фильтр вот так (whencreated<=$date) то это не работает. Никаких ошибок и пользователи просто не выгружаются. Видимо скрипт так и передает в запросе $date а не дату из файла config.sh Вопрос, как это сделать? Или это не реально внустри LDAP-фильтра подставлять переменную? |
$date - подумал, что это зарегистрированная команда и ее нельзя использовать и поменял $date на другое имя - тоже не работает
|
Нашел решение - нужо было указать переменную в одинарных кавычках (whencreated<='$date')
|
Попробуйте сначала формировать строку поиска, а после её передавать в ldapsearch
Цитата:
Цитата:
|
Время: 16:31. |
Время: 16:31.
© OSzone.net 2001-