limreport 和 limadm 命令为管理员提供了一种针对任何数目的用户保存和恢复 lnode 的内容的简单方法。使用 limreport 命令选择和提取要保存的 lnode,再使用 limadm 命令对其进行恢复。命令的这种混合一般用于复制 lnode 和更改 lnode 结构,如以下章节所述。
limreport 命令还提供了一种选择和显示用户属性的灵活方法。它可提供两级选择:lnode 的选择和针对每个被选 lnode 要显示的属性的选择。lnode 选择是通过规定一个选择表达式而实现的,该表达式可采用一种条件或者多种条件,并采用 C 语言格式的句法用逻辑运算符相连。属性选择是通过列出该属性的符号名而实现的。显示该属性的方式可使用一个格式控制字符串规定,该字符串类似于 C 语言功能 limreport,并采用扩展名来处理特殊的 Solaris Resource Manager 类型。如果规定了一个格式控制串为 '-', 则 limreport 可针对每个被显示的属性使用缺省格式。详细介绍请参见 limreport( 1SRM)。
limadm 命令提供了一种不加分割地更改 lnode 中的属性内容的工具,但是条件是该调用者有充分的特权。可直接在命令行中规定更改命令,也可(使用 -f 选项)规定含有更改命令的文件的名称。
limreport 命令能使用 limadm 句法生成属性值分配(请参阅 limadm 句法中的 preserve 标识符),其输出可使用-f 选项作为 limreport 的输入。这样就能使管理员同时使用这两个程序有选择地对限制数据库的内容进行保存和恢复。
命令:
# limreport 'uid==X' - Y preserve | limadm set -u -f - |
将把某个 lnode 从 UID X 复制到 UID Y。表达式 uid==X 提供选择源 lnode 的方法。preserve 标识符可使 limreport 输出在某个句法中不是只读型的所有属性值,该句法可用于传递到 limadm。把 UID Y 放置在 preserve 标识符之前可使其成为传递到 limadm 的数据中的第一个项目,并进而提供对目标 lnode 的选择。
如果不再要求源 lnode,则可用 limadm 将其删除。
在使用按照 UID 匹配作为 limreport 选择表达式时应加以小心。如果多个登录名共享一个 UID,则它们全都能匹配。在上例中,这没有关系;相同的 lnode 数据将得到保存并多次装载。在 Solaris 环境中, UID 0 具有 root 和 smtp 这两个登录名。