invscoutd 命令
用途
启动一个永久库存监控服务器守护程序。
语法
因斯库特 [ -o] [ -p 波尔特诺 ] [ -b 布夫斯姆 ] [ -d 最大目录大小 ] [ -t 超时 ] [ -v 韦尔布列夫 ]
描述
invscoutd 命令在用户的本地网络中的一台机器上实现一个永久库存监控服务器守护程序。 通常的客户机是在用户的 Web 浏览器中运行的 Java Applet ,它是从中央 Inventory Scout CGI 应用程序下载的。
守护程序的初始化包括读取命令行选项和一些本地库存监控伴随文件。 当操作时,每个客户机/服务器事务涉及从一个熟悉的套接字读取文本字符串和在相同的套接字上返回一个文本报告。
守护程序在日志文件里维护它的操作记录。 根据指定的冗长级别,记录日志行可能涉及启动和关闭标志、每个调用的跟踪、详细的内部程序跟踪和错误语句。 根据指定的冗长级别,启动标志可能也写入标准错误中。
协议
到守护程序套接字的客户机连接使用因特网 TCP/IP 协议。 在事务中,调用客户端 applet 发送一个操作请求(作为一个 URL 编码文本字符串)到服务器守护程序。 请求是通过任何 ASCII 控制字符(x00 到 x1F)来触发请求处理。
一些请求需要客户机传递其他的数据。 在这种情况下,其他的数据紧跟一个在操作请求中指定长度的终止字节。
有一个例外(ACTION=PING),服务器守护程序总会返回一个写回到同一个套接字连接的伪 MIME 格式化文本报告。 伪 MIME 格式甚至可以用作错误结果。 守护程序通过关闭套接字终止返回文本和事务本身,产生一个调用客户机的文件结束符(EOF)指示。 客户机应该在一收到 EOF 标志就在连接的结束处关闭套接字。
URL 编码消息
"ACTION=actionword&NAME1=value1&NAME2&NAME3=word%xx+word+word\0"| 姓名 | 意义/用途 | 支持值 |
|---|---|---|
| ACTION | 请参阅下面的操作请求表。 | 操作请求表左侧的一栏组成了一列支持值。 |
| MRDM | 允许客户机为使用/需求这个信息的任何 ACTION 提供一个(明文)密码。 该值区分大小写。 | 任何 ASCII 字符串(区分大小写)。 |
| DATALEN | 如果额外的二进制数据紧跟在 ACTION 字符串结束字节后,那么必须给出该名称,如果没有额外的数据跟在结束字节后,那么不能给出该名称。 提供的整数值指定了额外的数据字节数。 如果客户机试图写更多的数据,且如果操作没有接收 DATALEN 参数并废弃任何额外的数据,或者如果操作处理器检测到一个先前的错误,那么守护程序也许会过早的关闭客户机到服务器的套接字管道。 带有 n 大于指定最大值的事务将立即返回一个错误代码(请参阅 -d 命令行选项)。 | 任何达到这个值的整数,该值是由给出或没有给出 -d 命令行选项指示的。 |
| CLIENT | 允许客户机为使用/需要该信息的任何 ACTION 标识其自身。 | HSC 值指示库存监测来允许某些操作,仅在 HMC 库存检测主机的控制下允许这些操作。 |
| 型号 | 允许客户机为使用/需要该信息的 VPD 监测通知服务器关于服务器的型号。 | 任何最多达 25 个字符(限制应用于某些机器)的 ASCII 字符串 |
| SERIAL | 允许客户机为使用/需要该信息的 VPD 监测通知服务器关于服务器的序列号。 | 任何最多达 25 个字符(限制应用于某些机器)的 ASCII 字符串 |
- 字段名称和它们的值被等号(=)隔开。
- 姓名=值 pairs are separated by an & character.
- Name 字段总是不区分大小写。
- Value 字段不区分大小写,除非另有说明。
- 必须提供 ACTION=keyword 对。
- 在符号之间且没有等于符号的字符串解析为一个带有空值的 Name 字段。
- 空格可由 +(加号)表示。
- 二进制字符也许编码为一个百分符号的转义序列,该百分号后紧跟两个十六进制的字符(%xx)。 这个转义序列也必须用来编码值内 &、=(等于号)、和+(加号)的之类的 URL 元字符。
- 控制字符终止字节必须总是由客户机发送。
| 操作 | MRDM | 描述 |
|---|---|---|
| PING | 不需要 | 守护程序立即关闭套接字,引起客户机的一个直接 EOF。 这是唯一一个不返回结果代码或任何类型的文本的操作。 例如: |
| ECHO | 不需要 | 守护程序返回了一个文本报告,由原始未解析的请求字符串,后跟一个换行符组成。 并不是必须提供密码 (MRDM);但是如果提供了密码,它就会与其他每个对象一起被回送。 不需要其他数据 (DATALEN);但是如果提供了其他数据,它就会在请求字符串之后被回送。 对于 ECHO 请求,DATALEN 会被静默截断为最多 2000 个字符。 例如: |
| URLDECODE | 不需要 | 守护程序在解析后返回一个请求字符串的文本报告和任何后继数据的正确复制。 并不是必须提供密码 (MRDM);但是如果提供了密码,就会解析并返回此密码。 不需要其他数据 (DATALEN),但是如果提供了其他数据,就会解析并返回这些数据;但是,超过请求字符串的任何实际的其他数据将被废弃。 报告的每个数字行列出了原始字符串的已解析的 Name=Value 对。 例如: |
| TESTPWD | 需要 | 如果 MRDM 密码有效,守护程序返回 RESULT=0。 否则它返回 RESULT=2。 不接收其他数据 (DATALEN),如果提供了其他数据,那么将被废弃。 例如: |
| VERSIONS | 不需要 | 守护程序库存监控本身的当前版本号。 不接收其他数据 (DATALEN),如果提供了其他数据,那么将被废弃。 例如: |
| CATALOG | 需要 | 该守护程序更新具有已传递文件数据的检测的微码目录文件。 密码和数据长度参数都必须包括在请求字符串中。 不必以 root 用户的身份为该操作执行守护程序,但该守护程序必须具有 /var/adm/invscout/microcode/catalog.mic 的文件写许可权。 例如: |
| MCODES | 需要 | 守护程序执行微代码查看选项。 不接收其他数据 (DATALEN),如果提供了其他数据,那么将被废弃。 例如: |
| VPDS | 需要 | 守护程序执行 VPD 查看选项。 不接收其他数据 (DATALEN),如果提供了其他数据,那么将被废弃。 例如: |
结果
守护程序返回一个伪 MIME 格式的文本结果。 它通过其自身返回由一个或多个 Name= Value 对构成的报头,每个一行。 第一个 Name =Value 对是 RESULT=number 格式的结果代码。 始终会对每项操作(PING 操作除外)返回结果代码。
以下信息中未记录仅适用于 Java Applet 客户机的内部 scout 结果代码。
根据结果代码,一个可选的自由格式的文本报告可以紧随标题行。 如果有自由格式的文本报告,报头首先被一个空行终止,例如两个连续的换行。
无论什么情况,在读取套接字报告文本的最后部分后,结果报告会被一个 EOF 指示符终止。 EOF 也表示事务本身的结束。
| Result= | 描述 |
|---|---|
| 0 | 成功完成。 |
| 1 | 由于内存分配错误守护程序异常终止。 这种情况也许会发生在父服务器守护程序中或者其中一个子服务。 |
| 2 | 服务子守护程序因为需求的密码(MRDM=password)丢失或无效而异常终止。 |
| 3 | 服务子守护程序因为操作名称-值对(ACTION=keyword)丢失或无效而异常终止。 |
| 4 | 服务子守护程序因为不能将它的用户标识重置为 invscout 而异常终止。 |
| 21 | 服务子守护程序由于套接字输入的缓冲区溢出而异常终止。 结果的文本报告部分是本地语言错误消息。 客户机必须减少请求字符串的长度,或者增加缓冲区大小来杀死和重新启动守护程序。 |
| 22 | 服务子守护程序由于套接字读取错误而异常终止。 结果的文本报告部分是一个本地语言错误消息,包括系统的 I/O 错误字符串。 日志文件项也包含系统的 errno 字符串。 |
| 23 | 服务子守护程序由于套接字读取超时而异常终止。 结果的文本报告部分是本地语言错误消息。 客户机在请求字符串的结束处发送一个控制字符终止字节,并且必须总是发送 DATALEN 参数指定大小的字符串。 超时周期可能会被 -t 命令行参数改变。 |
| 24 | 服务子守护程序由于读取请求字符串时的过早遇到 EOF 而异常终止。 结果的文本报告部分是本地语言错误消息。 客户机必须在关闭套接字连接前在请求字符串的结束处发送一个终止字节。 |
| 25 | 服务子守护程序由于对于一个它所需要的操作的 DATALEN 参数丢失或无效时异常终止。 结果的文本报告对是本地语言错误消息。 客户机必须为所有操作发送数据的长度,这些操作传送了超出 URL 编码的请求字符串的额外二进制数据。 大多数这样的操作也要求 DATALEN 值限制在一个指定的最大大小内。 |
| 26 | 服务子守护程序由于通常的文件 I/O 错误,例如权限错误、超出磁盘空间等等而异常终止。 结果的文本报告部分是本地语言错误消息。 通常,I/O 问题必须在客户机能够再次尝试操作前在服务器上纠正。 |
| 27 | 因为不能为需求它的操作恢复版本号,服务子守护程序便异常终止。 |
标志
指定任何以连字符 (-) 开头的参数。 标志与它的值之间不允许空格。
| 项 | 描述 |
|---|---|
| -O | 覆盖现有的日志文件。 如果没有指定 -o 标志,那么新的日志文件行将附加到任意现有的文件中。 |
| -p 波尔特诺 | 将此服务器的端口号从缺省值 808 更改为 Port。 |
| -b 布夫斯姆 | 库存监控命令指定为 URL 编码的字符串,它被从一个 TCP/IP 套接字读入到一个 1024 字节固定长度的缓冲区中。 如果以后的协议更改要求更大的读缓冲区,那么 -b 标志可以将缓冲区大小更改为 Bufsize 字节。 |
| -d 最大目录大小 | 将最大微码目录文件大小从缺省值 50000 更改为您指定的值。 |
| -t 超时 | 客户机 applet 在 URL 编码的请求字符串结束处写入一个控制字符终止字节来表示请求结束。 如果 invscoutd 守护程序在超时期内没有接收到终止字节,它将异常终止事务并关闭套接字。 类似地客户机必须发送所有在 DATALEN 参数中指定的额外数据,且有足够的速度以防止在读取块之间超时。 -t 选项将缺省超时周期由 30 秒更改为 Timeout 秒。 |
| -v 韦尔布列夫 | 写到日志文件中的详细信息和标准错误的数量取决于守护程序的冗长级别。 每个级别合并较低级别的消息,提高冗长级别的同时也增加了写入的消息数和类型。 冗长级别是一个 0 到 25 之间的整数。 -v 标志将冗长级别从缺省值 18 更改为 Verblev。 |
| 级别 | 描述 |
|---|---|
| 0 | 禁用所有的错误和状态消息。 |
| 5 | 只写入致命错误的消息。 致命错误导致服务器的瘫痪。 通常,类似的消息同时写到 日志文件和标准错误中。 |
| 10 | 写入所有错误消息。 这些包括非致命错误,例如协议错误,也同样包括致命错误。 非致命错误通常只写入到日志文件。 |
| 15 日 | 这个级别包含启动和关机标志消息。 简单的标志消息通常写入到日志文件和标准错误中。 |
| 18 | 这个级别包含调用跟踪状态消息。 每个客户机调用导致一个单一的跟踪消息。 这是 invscoutd 守护程序的缺省级别。 跟踪消息仅写入到日志文件。 |
| 20 | 这个级别包含程序跟踪消息。 程序跟踪是相当详细的程序执行状态消息,一般用于调试目的。 由于超时,这个级别对于通常的产品执行并不合适,它用大量的文本来填满 日志文件。 跟踪消息仅写入到日志文件。 |
| 25 | 这是最高级别且包含扩展程序的调试消息。 这个级别对于通常的产品执行并不适合。 跟踪消息仅写入到日志文件。 |
退出状态
本命令返回以下退出值:
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 表示初始化成功 |
| 非 0 | 表示初始化未成功 |
安全性
守护程序必须作为一个有效用户标识 0(root)而执行。 它为 root 用户所有,并且安装时“setuid”位设为 ON 以使任何用户均可启动它。 然而在某个执行点上,守护程序的子服务将它们的用户标识重置为认证用户标识 invscout。 不会执行守护程序,除非已经在主机系统上创建了用户 invscout。
缺省情况下,对于大多数操作,需要从客户机获得一个随附的明文密码。 如果客户机密码不匹配认证用户标识 invscout 的系统密码,那么操作将退出并有一个返回码。 认证用户标识是不能改变的。
文件
| 项 | 描述 |
|---|---|
| /usr/sbin/invscoutd | 包含 invscoutd 命令 |
| /etc/security/password | 主机系统密码文件 |
| /var/adm/invscout/microcode | 与微码相关的操作的目录。 微码目录文件的缺省位置。 |
| /var/adm/invscout/microcode/catalog.mic | 缺省微码目录文件。 |
| /var/adm/invscout/invscout.log | 日志文件 |