使用系统可靠性管理器包含的脚本存储库和脚本启动程序模块,可以在远程设备上执行脚本来完成任意的管理任务。这种在远程设备上执行脚本的能力可以降低中央管理站进行处理的负载,还提供了保存本地轮询的机制。
本章包括以下主题:
使用脚本存储库模块,您可以查看代理计算机上可以由脚本启动程序模块运行的脚本。脚本存储库模块还列出脚本启动程序模块支持的语言。
(在 Solaris 10 上)用户可以使用动态跟踪 (Dynamic Tracing, DTrace) 功能来观察用户程序和操作系统的行为。使用 DTrace,用户可以观察系统、了解其工作状况、在多层软件之间跟踪性能问题或查找产生异常行为的原因。Solaris 10 附带的 D 编程语言可用于编写有助于调试系统的程序。
有关 DTrace 的详细信息,请参见《Solaris Dynamic Tracing Guide》。
脚本存储库模块包含常用的 Solaris 10 的 DScript。您可以在脚本启动程序模块中运行这些脚本。
语言表,列出受支持的语言。当前,包含 Java、shell 脚本和 DScript(在 Solaris 10 上)。
脚本表,可用于查看代理上的可用脚本。
只有 root 用户才能将脚本放到以下目录中:
/var/opt/SUNWsymon/SysMgmtPack/script-launcher/scripts
对于每个脚本,均指定了可以执行该脚本的用户和组,这些用户和组在脚本配置文件的“用户”和“组”中指定。另外,这些字段可以从任意控制台通过脚本表进行修改,但只有 esadm 用户有权修改这些字段。
root 不能出现在脚本表的“脚本用户”字段中。
加载模块。
有关加载和卸载模块的更多信息,请参见《Sun Management Center 3.6 用户指南》。在“导航器”窗口中的“本地应用程序”下可以找到脚本存储库模块。
在“浏览器”窗口中,双击“本地应用程序”。
该类别将展开。
在“本地应用程序”下,双击“脚本存储库”。
该类别将展开。
双击“脚本信息”文件夹,查看“语言表”和“脚本表”。
脚本信息组中的第一个表就是语言表,该表中列出了代理支持的所有脚本语言。每个表项都具有以下属性:
语言名称。(例如 Java)
语言来源。(例如 /usr/java)
不能对此表执行任何命令。您不能指定新的语言或删除语言。项数是固定的,并且由模块的实现和其支持的语言定义。
您可以通过在单元格中键入新信息来修改“语言来源”。
如果在指定的位置找不到指定的语言,系统可靠性管理器将生成信息 (INFO) 警报。
(在 Solaris 10 上)脚本表中含有一些预先定义的 DScript。
每个表项都具有下表中列出的属性。
表 5–1 脚本表的值
您可以通过浏览器修改的字段有“管理状态”、“脚本用户”和“组”。在“管理状态”区域中,您可以输入所需的脚本状态,例如“启用”或“禁用”。虽然此选项可以反映您需要的状态,但当模块确定所有的标准都已满足并且准备就绪后,就只有“操作状态”才能反映实际的状态。
如果脚本的语言不受支持,将发出信息警报。
如果无法访问脚本,将发出信息警报。
ScriptInfo.dat 文件包含有关可供运行的脚本的信息。可以向 ScriptInfo.dat 文件添加新的脚本,使模块能够识别该脚本。属于用户的所有脚本都必须列在此文件中。
ScriptInfo.dat 包含与脚本有关的信息,这些脚本以 shell 脚本、Java 和 DScript (Solaris 10) 语言编写。
编写新的脚本。
ScriptInfo.dat 文件的格式遵循标准的配置文件格式。
slice:attribute=value
将新脚本复制到 ScriptInfo.dat 文件中。
ScriptInfo.dat 文件位于以您的用户名标识的目录中,如下所示:
/var/opt/SUNWsymon/SysMgmtPack/script-launcher/scripts/username/ScriptInfo.dat
如果此文件中已经包含脚本信息,请将您的脚本添加到当前信息的下面。
以下 ScriptInfo.dat 文件示例包含两个脚本。
Script1:Owner = Scott Script1:Name = MyHello Script1:Desc = Says Hello Script1:Language = Java Script1:Source = Hello.class Script1:AdminStat = 1 Script1:OperStat = 1 Script1:Users = Noble Script1:Group = Staff Script2:Owner = Denise Script2:Name = MyFile Script2:Desc = Says Hello Script2:Language = Java Script2:Source = Hello.class Script2:AdminStat = 1 Script2:OperStat = 1 Script2:Users = Noble Script2:Group = Staff
使用脚本启动程序模块,您可以将管理功能委托给代理。管理功能是用管理脚本编程语言编写的管理脚本。脚本启动程序模块是一个多实例模块,其所有实例均访问同一个脚本存储库模块,以获取语言和脚本信息。
(在 Solaris 10 上)您可以通过脚本启动程序模块运行 DScript。
某些 DScript 可能进行连续监视操作。这种脚本的输出将会很大。由于此类脚本会降低 CPU 的速度,还可能使 Java 控制台挂起,因此建议避免使用它们。
可以将以下代码片断添加到任何 DScrip 中,用以控制特定时间段内的执行流。
tick-1sec
/i++ >= 10/
{
exit(0);
}
在此例中,DScript 只执行 10 秒钟。用户可以在 10 秒钟后看到输出。
启动表 – 说明准备启动的脚本及其参数
结果表 – 用于查看选定脚本的运行结果
使用脚本启动程序模块,您可以对脚本进行以下操作:
控制允许哪个用户从脚本存储库模块读取、写入和执行脚本
为管理脚本指定参数
启动和终止管理脚本
监视和控制正在运行的管理脚本
查看由正在运行的管理脚本生成的结果
控制允许哪个用户读取、写入和执行脚本
root 不能是启动表中 LaunchOwner 字段的一部分。要使计算机的 root 用户能够以超级用户身份运行脚本,请在该计算机上创建新的用户,然后使用该用户名运行脚本。
launchOwner 必须是服务器上新的 esscrusers 组的一部分,只有 esscrusers 才能在启动表中创建行或进行更改。
启动拥有者(或 launchOwner)必须是代理计算机上的有效用户,该用户必须是本地用户,或者是通过服务(例如 NIS)在代理计算机上添加的某个用户。脚本由拥有启动拥有者权限的用户运行。
必须首先加载脚本存储库模块,然后才能使用脚本启动程序模块。
加载模块。
请参见《Sun Management Center 3.6 用户指南》,以获取更多信息。在“浏览器”窗口中的“本地应用程序”下可以找到脚本存储库模块。
在“浏览器”窗口中,双击“本地应用程序”。
双击“脚本启动程序”。
脚本启动程序将显示启动表和结果表。
启动表中的某一项向脚本添加了一个参数,还定义了脚本拥有者,即谁拥有执行该脚本的权限。
通过此表中的一个单独项可以创建多个脚本实例,此表中的多个项也可以指向脚本表中的同一个脚本。您可以用不同的参数和权限来执行多个相同的脚本。只有拥有启动拥有者权限的用户才能运行脚本。
表 5–2 启动表属性
按照访问脚本启动程序模块中所述,访问启动表。
在启动表标题上按鼠标按钮 3。
显示弹出菜单。
选择“新行”并提供所有必需参数。
“脚本拥有者”和“脚本名称”的值指向从此启动按钮启动的脚本。
按照访问脚本启动程序模块中所述,访问启动表。
在显示所需脚本名称的行上按鼠标按钮 3。
选择“启动脚本”。
该脚本将启动。
按照访问脚本启动程序模块中所述,访问启动表。
在显示要停止的脚本的行上按鼠标按钮 3。
将显示弹出式菜单。
选择“中断脚本”。
脚本将停止运行。
结果表列出当前正在运行或最近终止运行的所有脚本。该表包含以下信息:
脚本开始执行和结束执行的时间
脚本结束执行的原因
脚本的结果
脚本还允许运行的时间长度
结果表中的每一行都包含脚本调用过程中传递的参数、脚本生成的结果以及脚本退出代码。结果表还提供了当前运行状态、开始时间戳和结束时间戳等信息。
表 5–3 结果表属性
按照访问脚本存储库模块中所述,访问结果表。
在结果表中正在运行的脚本项上按鼠标按钮 3。
显示弹出菜单。
选择“查看结果日志”查看选定脚本的相应结果日志文件。
将显示“探测查看器”,其中显示日志结果。
您也可以通过命令行来访问日志文件。日志文件保存在 /var/opt/SUNWsymon /SysMgmtPack/script-launcher/scripts/UserName/logs 目录中。日志文件名称包含正在运行的实例,因此当用户多次运行同一个脚本时,当前日志文件是相同的。
按照访问脚本存储库模块中所述,访问结果表。
在结果表中的行上按鼠标按钮 3。
显示弹出菜单。
选择“删除行”。
将显示一个对话框,供用户确认或取消删除。
单击 Yes(是)确认。
删除行后,运行表将会立即自动刷新。