Руководство по системному администрированию: контейнеры в Solaris - управление ресурсами и зонами

Интерфейс Perl к libexacct

Интерфейс Perl позволяет создавать сценарии на Perl для чтения учетных файлов, созданных архитектурой exacct. Также имеется возможность создания сценариев на Perl, записывающих файлы exacct.

Интерфейс функционально эквивалентен API на C, лежащему в его основе. Когда это возможно, данные, полученные из основного API на C, представляются в виде типов данных Perl. Эта функциональность упрощает доступ к данным и устраняет необходимость в операциях помещения в буфер и изъятия из буфера. Кроме того, все управление памятью выполняется библиотекой Perl.

Разнообразные функции, связанные с проектами, задачами и exacct, разнесены по группам. Каждая группа функций располагается в отдельном модуле Perl. Каждый модуль начинается со стандартного префикса пакетов Perl Sun::Solaris::. Все классы, предоставляемые библиотекой Perl exacct, располагаются в модуле Sun::Solaris::Exacct.

Лежащая в основе библиотека libexacct(3LIB) обеспечивает операции над файлами в формате exacct, тегами каталогов и объектами exacct. Объекты exacct подразделяются на два типа:

В следующей таблице дается краткая характеристика каждого из модулей.

Модуль (не должен содержать пробелов) 

Описание 

Дополнительная информация 

Sun::Solaris::Project

Этот модуль предоставляет функции для доступа к функциям манипулирования проектами getprojid(2), endprojent(3PROJECT) , fgetprojent(3PROJECT), getdefaultproj(3PROJECT), getprojbyid(3PROJECT), getprojbyname(3PROJECT), getprojent(3PROJECT), getprojidbyname(3PROJECT), inproj(3PROJECT), project_walk(3PROJECT), setproject(3PROJECT) и setprojent(3PROJECT).

Project(3PERL)

Sun::Solaris::Task

Этот модуль предоставляет функции для доступа к функциям манипулирования задачами gettaskid(2) и settaskid(2).

Task(3PERL)

Sun::Solaris::Exacct

Это модуль верхнего уровня exacct. Этот модуль предоставляет функции для доступа к системным вызовам, связанным с exacct getacct(2), putacct(2) и wracct(2). Этот модуль также предоставляет функции для доступа к средствам библиотеки libexacct(3LIB) ea_error(3EXACCT). Также в этом модуле содержатся константы для всех макросов exacct EO_*, EW_*, EXR_*, P_* и TASK_*.

Exacct(3PERL)

Sun::Solaris::Exacct:: Catalog

В этом модуле содержатся объектно-ориентированные методы для доступа к битовым полям тега каталога exacct. Модуль также используется для доступа к константам для макросов EXC_*, EXD_* и EXD_*.

Exacct::Catalog(3PERL)

Sun::Solaris::Exacct:: File

Этот модуль предоставляет объектно-ориентированные методы для доступа к функциям учетного файла libexacct ea_open(3EXACCT), ea_close(3EXACCT), ea_get_creator(3EXACCT), ea_get_hostname(3EXACCT), ea_next_object(3EXACCT), ea_previous_object(3EXACCT) и ea_write_object(3EXACCT).

Exacct::File(3PERL)

Sun::Solaris::Exacct:: Object

Этот модуль предоставляет объектно-ориентированные методы для доступа к отдельным объектам учетного файла exacct. Объект exacct представляется в виде непрозрачной ссылки, создаваемой (bless) в соответствующем подклассе Sun::Solaris::Exacct::Object . Этот модуль далее подразделяется на типы объектов Item (элемент) и Group (группа). На этом уровне имеются методы для доступа к функциям ea_match_object_catalog(3EXACCT) и ea_attach_to_object(3EXACCT).

Exacct::Object(3PERL)

Sun::Solaris::Exacct:: Object::Item

Этот модуль предоставляет объектно-ориентированные методы для доступа к отдельным элементам учетного файла exacct. Объекты этого типа являются наследниками Sun::Solaris::Exacct::Object.

Exacct::Object::Item(3PERL)

Sun::Solaris::Exacct:: Object::Group

Этот модуль предоставляет объектно-ориентированные методы для доступа к отдельным группам учетного файла exacct. Объекты этого типа являются наследниками Sun::Solaris::Exacct::Object. Эти объекты предоставляют доступ к функции ea_attach_to_group(3EXACCT). Элементы, содержащиеся внутри группы, представляются в виде массива Perl.

Exacct::Object::Group(3PERL)

Sun::Solaris::Kstat

Этот модуль предоставляет увязанный с Perl интерфейс хеширования для средства kstat. Примером использования этого модуля может служить /bin/kstat, написанный на Perl.

Kstat(3PERL)

Примеры использования модулей, описанных в предыдущей таблице, приведены в Использование интерфейса Perl для libexacct.