svcio - 根据服务配置属性创建文本文件
/lib/svc/bin/svcio [-alux] [-D name=value]... [-f FMRI-instance] [-g group] [-i file] [-m mode] [-o file] [-O owner] [-R dir [-L opts [-p]]] [-S dir]
svcio 实用程序读取称为 stencil 的模板,然后根据该文件并结合服务实例中的属性输出文本。通常,svcio 用于为受 SMF 管理但无法从其读取其配置的服务生成应用程序特定的配置文件。
如果 stencil 本身包含任何错误,svcio 将提供一段文字以及行号和错误原因。除非错误阻止进一步操作,否则将按错误在文件中出现的顺序输出每个错误。
标准错误流将列显错误消息。
支持以下选项:
处理为实例配置的所有文件。
具体来说,svcio 将查找类型为 "configfile" 的所有属性组,并通过检查相应属性组中属性 path 和 stencil 的值来确定要使用的 stencil 以及在何处写入生成的文件。例如,如果属性组 "conf1" 属于相应类型,则 svcio 将使用 "conf1/stencil" 的值作为 stencil 文件的路径,使用 "conf1/path" 作为向其写入输出的文件的路径。此外,可选属性 owner 和 group 可以分别用于设置输出文件的所有者和组。如果属性组名称或属性名称包含保留字符,则必须对其进行编码。如果属性组嵌套在另一个属性组中,则还必须对其进行编码,并指示属性组的完整祖先。有关更多信息,请参见 smf(7) 手册页。
在不带参数的情况下,将 name 定义为宏,它提供指定值的简单文本替换。这些宏还可以指定为名为 defines 的属性组中的属性,该属性组嵌套在指定 stencil 的 configfile 属性组中,并且将仅在相应的上下文中可用。
要对其运行 stencil 的服务实例的 FMRI。
输出文件要与之关联的组。
stencil 文件的路径(缺省为 stdin)此选项不能与 –a 选项一起使用。
列出要输出文件时引用的所有属性。
指定回送挂载输出文件时要传递到 mount(2) 的选项。如果未指定此选项,则将不回送挂载输出文件。此选项必须与 –R 开关一起使用。常规文件将写入指定的输出路径(根目录为前缀)。此文件将回送挂载到指定的输出路径(根目录为 / 或 –R 选项值)。
设置任何输出文件的模式(缺省为 644)。
输出文件的路径(缺省为 stdout)。此选项不能与 –a 选项一起使用。
设置输出文件的所有者。
设置所有输出文件的根前缀。
在根目录为 –R 选项值的输出文件路径中创建不存在的中间目录。请注意,此选项不创建挂载点路径中缺少的目录。
在此目录而非缺省目录中查找 stencil。
解除输出文件链接,并撤消回送挂载。将不创建输出文件。
终止第一个错误中的 svcio,而不是继续前进到下一个 stencil。
支持下列操作数:
故障管理资源标识符 (Fault Management Resource Identifier, FMRI),用于指定一个或多个实例(请参见 smf(7))。可以通过指定实例名称或服务名称的结尾部分使用 FMRI 的缩写形式。例如,以下给定的 FMRI:
svc:/network/smtp:sendmail
以下是有效的缩写形式:
sendmail :sendmail smtp smtp:sendmail network/smtp
以下是无效的缩写形式:
mail network network/smt
如果 FMRI 指定了一个服务,则该命令适用于此服务的所有实例,但与 –D 选项结合使用除外。
FMRI 的缩写形式不稳定,不应在脚本或其他永久性工具中使用。
用于指定实例的 FMRI。
此示例处理某个实例的所有配置文件:
example% svcio -a -f svc:/service:instance示例 2 删除实例的所有配置文件
此示例解除链接并卸载某个实例的所有配置文件:
example% svcio -au -f svc:/service:instance示例 3 将未配置的 stencil 用于实例
此示例根据尚未配置的 stencil 生成输出文件:
example% svcio -o /etc/svc.conf -i ~/svc.stencil \ -f svc:/service1:instance
将返回以下退出值:
命令调用成功。
系统调用失败导致发生致命错误。
指定的命令行选项无效。
意外 SMF 错误导致发生致命错误。
解析 stencil 时出错。
有关下列属性的说明,请参见 attributes(7):
|
svcprop(1)、svcs(1)、stat(2)、libscf(3LIB)、smf_stencil(5)、smf(7)、svc.startd(8)、svcadm(8)、 svccfg(8)