系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones

libexacct 的 Perl 接口

通过 Perl 接口可以创建 Perl 脚本,该脚本可读取由 exacct 框架生成的记帐文件。您还可以创建编写 exacct 文件的 Perl 脚本。

此接口与基础 C API 在功能上是等效的。如果可能,通过基础 C API 获取的数据将显示为 Perl 数据类型。使用此功能,可以更轻松地访问数据,并且无需进行缓冲区压缩和解压缩操作。此外,所有内存管理均由 Perl 库执行。

各种与项目、任务和 exacct 相关的功能可分为多个组。每个功能组都位于单独的 Perl 模块中。每个模块都以 Sun 标准的 Sun::Solaris:: Perl 软件包前缀开头。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 对象表示为被指定隶属于相应 Sun::Solaris::Exacct::Object 子类的不透明参考。此模块分为项和组两种对象类型。在此级别上提供了访问 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

此模块提供了 kstat 功能的与 Perl 关联的散列接口。/bin/kstat 提供了此模块的使用示例,此示例采用 Perl 编写。

Kstat(3PERL)

有关说明如何使用上表中介绍的模块的示例,请参见使用 libexacct 的 Perl 接口