Что-то, что вы могли бы попытаться выполнить, чего вы хотите:
emailFile="/var/tmp/emailFile.txt"
for i in $(cat ${filename}) ; do
results=$(*INPUT LDAPSEARCH HERE REPLACING USERNAME WITH ${i}* | grep -i lastlogontimestamp)
if [[ ${results} != "" ]] ; then
echo "${i} appears to be an active user"
else
echo "${i} IS INACTIVE"
echo "${i}" >> "${emailFile}"
fi
done
Это НЕ рабочий сценарий, но он должен дать вам очень хорошее представление о том, как заставить его работать в вашей среде. Пара вещей на заметку...
${filename} = местоположение/имя файла вашего списка имен
ВВЕДИТЕ ЗДЕСЬ LDAPSEARCH, ЗАМЕНЯЯ USERNAME НА ${i} = Вы должны ввести свою команду, чтобы запустить здесь поиск ldap. пример $(ldapsearch -D "cn=manager" -w пароль -h server.example.com -b "dc=example,dc=com" "cn=${i}" | grep -i "отметка времени последнего входа")
«lastlogontimestamp» будет соответствовать той части запроса, которую вы хотите проверить, чтобы определить, активен пользователь или нет.
Это установит переменную ${results} в строку, которую вы ищете. Это может быть отметка даты или пустое значение, если пользователи никогда не входили в систему.
Следующий оператор «если» сравнит результаты со строкой/шаблоном, которые вы ожидаете. В моем операторе if выше говорится, что если ${results} не равно ничему, то сообщать вам, что пользователь, которого вы искали, активен. Если ${results} действительно пусты, запишите имя пользователя.
Вам придется изменить часть ldapsearch, чтобы она соответствовала вашим потребностям, и оператор if, чтобы он соответствовал тому, что вы ожидаете увидеть в своем запросе, если пользователь не активен. Надеюсь, это поможет.
person
IT_User
schedule
10.12.2015
while read -r line; do myldapsearch "${line}"; done < userlist
и покажите, где вы застряли. - person Walter A   schedule 11.12.2015