Я пытаюсь написать скрипт, который находит проверки квот домашней папки и отправляет электронные письма пользователям, которые превышают определенный процент своей квоты, у нас есть сервер ldap 389, я могу искать ldap для uid, и результат в ldif формат. Я не могу понять, как прочитать значение атрибута, соответствующего электронной почте, скажем, personalEmail: hisEmail Я хочу прочитать значение атрибута personalEmail, т.е. егоEmail

Благодарность

2
Judy 25 Мар 2011 в 18:06
Dn: uid=jtom,ou=staff,ou=People,dc=xx,dc=com objectClass: top objectClass: xxPerson objectClass: posixAccount objectClass: xxPerson objectClass: inetOrgPerson objectClass: OrganizationPerson objectClass: person uid: jtom uidNumber: 2525 cn: jtom gidNumber: 1212 homeDirectory: /homes/jtom namedName: john sn: tom personalEmail: john_tom mailStop: 5555 personalURI: NULL description: 0 xxPersonLocalPhone: +1 232 323 3232 loginShell: /bin/tcsh
 – 
Judy
25 Мар 2011 в 18:14
Извините за это, но, похоже, разделители строк не были включены, это образец вывода ldapsearch
 – 
Judy
25 Мар 2011 в 18:15
Если вам нужен сценарий оболочки для Unix/linux, вы получите лучший ответ, добавив теги bash. Если для Windows (не уверен) .bat или .wsh? Также вы можете отредактировать исходный пост, включив в него данные. Вставьте свои образцы данных, выделите их, затем в параметрах формата в верхней части формы ввода выберите {} (код), это должно сохранить образцы данных в отдельных строках.
 – 
shellter
25 Мар 2011 в 18:41

1 ответ

ldapsearch ... | awk -F ": " '$1 == "desiredAttribute" {print $2}'
5
glenn jackman 25 Мар 2011 в 18:36
В случае длинного значения атрибута, начиная с OpenLDAP 2.4, вы можете использовать -o ldif-wrap=no для предотвращения переноса.
 – 
mr.spuratic
13 Дек 2018 в 19:57