Perl для системного администрирования



         

LDAP: сложная служба каталогов - часть 12


dn: cn=Barbara Jensen, ou=Product Development, ac=airius, dc=com

objectclass: top

objectclass: person

objectclass: organizationalPerson

en: Barbara Jensen

en: Barbara J Jensen

en: Babs Jensen

sn: Jensen

uid: bjensen

telephonenumber: +1 408 555 1212

description: A big sailing fan.

dn: cn=Bjorn Jensen, ou=Accounting, dc=airius, dc=com

objectclass: top

objectclass: person

objectclass: organizationalPerson

en: Bjorn Jensen

sn: Jensen

telephonenunber: +1 408 555 1212

Формат должен быть вам понятен. После номера версии LDIF перечислены DN-имена каждого элемента, определения objectclass и атрибуты. Разделителем элементов является пустая строка.

Наша первоочередная задача - научиться создавать файлы LDIF из существующих элементов каталогов. Кроме того что мы обеспечим себе данные для следующего раздела (в котором рассматривается чтение файлов LDIF), такая возможность позволит использовать LDIF-файлы

любым способом при помощи обычных операций Perl, работающих с текстом.

При обсуждении поиска в LDAP было показано, как вывести элементы в формате LDIF. Изменим код предыдущего примера так, чтобы он записывал данные в файл:

use Mozilla::LDAP::Conn: use Mozilla::LDAP::LDIF:

<выполняем связывание и поиск>

open(LDIF,">$LDIFfile1") or die ""Невозможно записать в SLDIFfile:$!\n": П создаем новый объект LDIF и передаем дескриптор Sldif = new Mozula: :LDAP: :LDIF(\*LDIF);

while (Sentry) (

$ldif->wr :reOneEntry($entry): Sentry = $c->nextEntry():

$c->close(); close(LDIF):

Модуль Mozilla: : LDAP располагает методом writeEntries(), позволяющим принять массив элементов и записать их подобным образом.

Используя Net: : LDAP, изменить первоначальную программу еще проще. Вместо:

$ldif = new Net::LDAP::LDIF("-"); применим:

Sldif = new Net::LDAP::LDIF($filename,"w");

для записи выводимых данных в указанный файл, а не на стандартный вывод.

Теперь совершим обратное действие и прочитаем файлы LDIF (вместо того, чтобы в них записывать). Методы объекта из модуля, о котором пойдет речь, позволяют легко добавить элементы в каталог.




Содержание  Назад  Вперед