dsh 命令

用途

以并发方式对多个节点和硬件设备运行命令。

语法

dsh '-hdsh '-V' dsh '-qdsh [ -a] [--所有节点 上下文列表]

[ -A] [--all-devices context_list][-n

节点列表 ] [ -N 节点组 ] [ -d 设备列表 ]

[-D 设备组 ] [-C 上下文]

[ -c ] [ -e ] [ -E 环境文件

] [ -f 扇出 ] [ -F 输出路径 ]

[-i ] [-l user_ID] [-L]

[-- log log_file] [-m] [-o

节点_选项 ] [-O 设备_选项 ] [-Q ]

[-r node_remote_shell ] [--device-rsh

device_remote_shell ] [-s ] [-S

csh | ksh ] [-t 超时]

[-T ] [-v] [-X

env_list] [-z ] [-- report

report_path] [-- report-name report_name] [command_list]

描述

dsh 命令以并发方式对远程目标(节点和/或硬件设备)运行命令。 您可以从多个上下文中选择目标。 上下文是指包含节点定义和设备定义的目标数据库,例如 NIM 数据库。 dsh 命令将对指定的每个目标发出远程 Shell 命令。 它以格式化方式返回来自所有目标的输出,以使您能够方便地管理来自所有节点的命令结果。 /usr/bin/rsh 是语法和安全性的模型,并且,dsh 命令是一个 DSM 分布式 Shell 实用程序。

注: dsh 命令仅在 IPv4 目标设备上受支持。 当前不支持 IPv6 地址。

参数

描述
目标上下文 dsh 命令目标上下文是一个在其中定义了目标或目标组的数据库。 您可以使用 -C 上下文标志或 DSH CONTEXT 环境变量来配置缺省上下文。 如果未指定任一参数,那么当从 NIM 管理服务器运行 dsh 命令时,缺省上下文为 NIM ,否则缺省上下文为 DSH (请参阅 DSH CONTEXT)。 请通过在 /opt/ibm/sysmgt/dsm/pm/Context 目录中安装上下文扩展文件将上下文与 DSH 实用程序命令配合使用。 可以通过使用上下文名称限定目标名称来显式指定目标或目标组上下文,也可以通过为未限定的目标名称指定缺省上下文来隐式定义目标或目标组上下文 (请参阅 目标列表)。
DSH 上下文 DSH 上下文是所有 DSH 实用程序命令的内置上下文。 它允许用户定义的节点组数据库包含在本地文件系统中。 DSH_NODEGROUP_PATH 环境变量指定节点组数据库的路径。 此目录中的每个文件都代表一个节点组,并且,对于每个作为组成员的节点,该文件都包含一个主机名或 TCP/IP 地址。 空行以及以 # 符号开头的注释行将被忽略。 如果在 DSH 上下文中请求对所有节点执行操作,那么将根据 DSH_NODEGROUP_PATH 目录中的所有组构建完整节点列表并在 /var/ibm/sysmgt/dsm/dsh/$DSH_NODEGROUP_PATH/AllNodes 中高速缓存该列表。 此文件将在您每次修改组文件或者将组文件添加到 DSH_NODEGROUP_PATH 目录时进行重新创建。 在 DSH 上下文中,不支持设备目标。
目标规范 目标是发出了远程命令的节点或硬件设备。 Node targets are specified using the -a, '--all-nodes 上下文列表, -n 节点列表 and -N 节点组 flags, or the DSH_NODE_LIST environment variable. 如果同时使用 -N 标志和 DSH_NODE_LIST 环境变量,那么将合并组和列表以消除任何重复项。
注: DSH_NODE_LIST 环境变量已替换 WCOLL
设备目标是使用 -A、--all-devices context_list-d device_list-D devicegroups 标志或 DSH_DEVICE_LIST 环境变量指定的。 如果包括本地主机作为目标的组成部分,那么除非指定了在本地主机上运行时使用的 user_ID,否则 command_list 将直接在本地主机上运行而不是通过已配置的远程 Shell 运行(请参阅“远程用户”)。 DSH_NODE_LISTDSH_DEVICE_LIST 环境变量指定列示了目标节点和设备的文件。 文件格式是每行 1 个目标。 空行以及以 # 符号开头的注释行将被忽略。 您可以同时指定节点目标和设备目标,但同一个目标名称不能同时用于设备和节点。 如果使用了相似的名称,那么程序将跳过重复的目标并在其他目标上继续执行。 您还可以使用节点范围来指定节点目标和设备目标;有关详细信息,请参阅节点范围文件。 即使多次指定同一个目标,远程命令也只在指定的目标上运行一次。
目标列表 请使用以下格式来指定目标和目标组:

[context:] [user_ID@] target [, [ context:] [user_ID@] target] ...

其中,context 是对目标指定的显式上下文,user_ID 是以远程方式在目标上运行命令时要使用的可选 用户名,而 target 是目标的上下文所允许的目标名称或目标 TCP/IP 地址。 对于节点范围表达式而言,user_ID 将用于节点范围表达式求值所生成的列表中的每个目标。 如果目标列表仅使用连字符 (-) 指定,那么可以通过交互方式来指定目标。 对于节点,提示为 dsh node>; 对于设备,提示为 dsh device>。 一次在 1 行上使用以下语法指定目标列表:

[context:] [user_ID@] 目标

其中,context 是对目标指定的显式上下文,user_ID 是以远程方式在目标上运行命令时要使用的可选 用户名,而 target 是目标的上下文所允许的目标名称或目标 TCP/IP 地址。 对于节点范围表达式而言,user_ID 将用于节点范围表达式求值所生成的列表中的每个目标。 如果目标列表仅使用连字符 (-) 指定,那么可以通过交互方式来指定目标。 对于节点,提示为 dsh node>; 对于设备,提示为 dsh device>。 一次在 1line 上使用以下语法指定目标列表:

[上下文:] [user_ID@]目标

完成后,请按 Ctrl-d 继续。
命令规范 请通过使用 dsh 参数 command_list、在交互方式下通过命令行输入命令、通过标准输入提供 command_list 或者使用 -e 标志运行本地脚本来指定要在远程目标上运行的命令。 dsh 参数 command_list 的语法如下所示:"command[; command]..."。 其中,command 是要在远程目标上运行的命令。 引号是必需的,用于确保以远程方式运行该列表中的所有命令,并确保在远程目标上正确解释任何特殊字符。 您可以使用 -e 标志在每个远程目标上运行本地主机上的脚本文件。 如果指定了 -e,那么 command_list 是脚本名和脚本参数。 例如:
dsh -e[flags] script_filename [arguments]...
script_filename 文件将复制到每个远程目标上的 /tmp 目录并命名为随机文件名,然后在目标上运行。 如果未指定 command_list 参数,那么 dsh 将进入交互式命令行方式并提示 dsh> 提示符。 使用以下语法在 dsh> 提示符处输入命令: [!] "command" ,其中 command 是要在远程目标上运行的命令。 命令前的惊叹号 (!) 会导致该命令仅在本地主机上运行,而不是在远程目标上运行。 dsh 命令将在所解析的目标上运行命令并显示结果。 然后返回到 dsh> 提示符。 要退出命令行方式,请在 dsh> 提示符处输入 exit。 dsh 命令无法与任何交互式命令配合工作,这包括那些从标准输入读取的命令。
远程用户 远程目标使用的user_ID可以作为目标语法的一部分指定(参见目标列表),也可以使用 -l( 小写 L)标志指定。 如果同时使用这两种方法,那么将按如下方式确定 user_ID
  1. 对于以 user_ID@target 方式指定的目标而言,将使用 user_ID 在该目标上执行远程命令,并且将忽略 -l 标志。
  2. 对于并非使用 user_ID@target 指定的目标而言,将按如下方式确定用于在该目标上执行远程命令的 user_ID:- 通过 -l 标志指定的 user_ID。 如果未指定 -l,那么将使用运行此命令的当前用户。 如果对本地主机指定的 user_ID 包括在目标列表中,那么远程 Shell 命令将在本地主机上运行 command_list 以确保登录标识安全。
远程 Shell 命令 请通过使用 dsh 参数 command_list、在交互方式下通过命令行输入命令、通过标准输入提供 command_list 或者使用 -e 标志执行本地脚本来指定要在远程目标上运行的命令。 dsh 参数 command_list 的语法如下所示:"command[; command]..."。 其中,command 是要在远程目标上运行的命令。 引号是必需的,用于确保以远程方式运行该列表中的所有命令,并确保在远程目标上正确解释任何特殊字符。 您可以使用 -e 标志在每个远程目标上运行本地主机上的脚本文件。 如果指定了 -e,那么 command_list 是脚本名和脚本参数。 例如 :dsh-e [flags] script_filename [arguments] ... script_filename 文件将复制到每个远程目标上的 /tmp 目录并命名为随机文件名,然后在目标上运行。 如果未指定 command_list 参数,那么 dsh 将进入交互式命令行方式并显示 dsh> prompt。 使用以下语法在 dsh> 提示符处输入命令: [!] "command",其中 command 是要在远程目标上运行的命令。 命令前的感叹号 (!) 会导致该命令仅在本地主机上运行,而不会运行到任何远程目标。 dsh 命令将每个命令运行到每个已解析的目标,结果将显示并返回到 dsh> prompt。 要退出命令行方式,请在 dsh> 提示符处输入 exit。 dsh 命令无法与任何交互式命令配合工作,这包括那些从标准输入读取的命令。
远程用户 远程目标使用的user_ID可以作为目标语法的一部分指定(参见目标列表),也可以使用 -l( 小写 L)标志指定。 如果同时使用这两种方法,那么将按如下方式确定 user_ID
  1. 对于以 user_ID@target 方式指定的目标而言,将使用 user_ID 在该目标上执行远程命令,并且将忽略 -l 标志。
  2. 对于并非使用 user_ID@target 指定的目标而言,将按如下方式确定用于在该目标上执行远程命令的 user_ID:- 通过 -l 标志指定的 user_ID。 如果未指定 -l,那么将使用运行此命令的当前用户。 如果对本地主机指定的 user_ID 包括在目标列表中,那么远程 Shell 命令将在本地主机上运行 command_list 以确保登录安全。
REMOTE SHELL 环境 在远程目标上使用的 Shell 环境将缺省为您为用于以远程方式执行命令的 user_ID 定义的 Shell。 您可以使用 -S 标志来指定用于以远程方式执行命令的命令语法。 如果未指定 -S,那么语法将缺省为 ksh 语法。 在远程目标上运行命令时,使用的路径由当前用户的 Shell 中定义的 DSH_PATH 环境变量确定。 如果未设置 DSH_PATH,那么使用的路径是远程 Shell 缺省路径。 例如,要设置远程目标的本地路径,请使用 DSH_PATH=$PATH-E 标志将本地环境定义文件导出到每个远程目标。 在运行 command_list 之前,将在远程 Shell 环境中定义此文件中指定的环境变量。
命令执行 您可以使用 -f 标志或 DSH_FANOUT 环境变量来指定最大并发远程 Shell 命令进程数(扇出)。 扇出受可以并行运行的远程 Shell 命令数限制。 您可以在管理服务器上使用 DSH_FANOUT 值进行试验,以确定更大的值是否合适。 通过使用 -t 标志或 DSH_TIMEOUT 环境变量,可以指定远程命令执行超时值。 如果任何远程目标未在超时值所指定的时间内向标准输出或标准错误提供输出,那么 dsh 命令将显示错误消息并退出。 如果使用 -s 标志指定了流方式,那么将在每个目标提供了输出时返回该输出。 此进程不会等待 command_list 在所有目标上完成即返回输出。 这有助于提高性能,但会导致输出未经排序。 -z 标志用于显示 command_list 中对远程节点发出的最后一个命令的退出码。
注: OpenSSH 返回作为其退出状态发出的最后一个远程命令的退出状态。
这将影响 dsh 的行为并要求使用 -c 标志。 如果对远程节点发出的命令在后台运行,那么该命令不会显示退出状态。 -m 标志通过将状态消息发送到标准输出来监视 dsh 命令的执行情况。 每条状态消息前面都有 dsh>。 -T 标志提供用于执行 dsh 命令的诊断跟踪信息。 将显示缺省设置以及对远程目标运行的实际远程 Shell 命令。 对于远程目标,未提供错误检测或恢复机制。 您可以对发送到标准错误和标准输出的 dsh 命令输出进行分析,以确定相应的操作过程。 在交互方式下,如果无法在远程目标上运行某个命令(例如,某个远程 Shell 命令生成非零返回码),那么除非指定了 -c 标志,否则在这次 dsh 命令调用期间不会将后续命令发送到此节点。
命令输出 dsh 命令将等待显示每个远程 Shell 进程的输出,然后启动新的远程 Shell 进程。 这种缺省行为将被 -s 标志覆盖。 dsh 命令输出由远程命令的标准错误和标准输出组成。 dsh 标准输出是远程 Shell 命令的标准输出。 dsh 标准错误是远程 Shell 命令的标准错误。 每一行都以生成该输出的节点的主机名作为前缀。 在主机名后面,跟有 : 字符和命令输出行。 单独提供一个用于显示按节点分组的相同输出的过滤器。 有关更多信息,请参阅 dshbak 命令。 可以使用 -F output_path 标志将每个目标的输出复制到一个文件中。 每个目标的标准输出将写入 output_path 目录中的 target.output 文件,每个目标的标准错误将写入 output_path 目录中的 target.error 文件。 -F 标志并不会抑制控制台上的输出。 通过使用 -Q 标志,可以采用静默方式来运行命令;即,不显示来自每个目标的标准输出或标准错误的输出。 如果指定了 -F 标志,那么输出将继续写入输出文件。
报告 可以将 dsh 命令的输出保存到本地主机上的一份报告中。 --report report_path 标志允许在指定的 report_path 目录中生成报告。 要激活报告,请定义 DSH_REPORT 环境变量并对其指定 report_path--report 标志将覆盖 DSH_REPORT 环境变量。 --report-name 标志定义报告名称(如果已激活报告功能)。 报告名称也是 report_path 中包含报告文件的子目录。 为了允许多个报告同名,对子目录名称追加了数字索引。 如果未使用 --report-name 标志,那么名称将缺省为 Unspecified。 除了创建 XML 结果文件以外,还将创建摘要 HTML 和 XML 报告文件。 信号:信号 2 (INT)、信号 3 (QUIT) 和信号 15 (TERM) 将传播到远程目标上执行的命令。 信号 19 (CONT)、信号 17 (STOP) 和信号 18 (TSTP) 将缺省为 dsh;dsh 命令正常地对这些信号作出响应,但这些信号不会影响以远程方式执行的命令。 其他信号由 dsh 确定并且将对 dsh 命令产生缺省影响;所有当前子进程都将通过传播到以远程方式运行的命令而终止 (SIGTERM)。 参数:command_list 指定要在远程目标上执行的命令的列表。 参数 command_list 的语法如下所示:" command[; command..."

关键字

描述
-a 在目标列表中包括缺省上下文中定义的所有节点。 您可以使用 -C 标志或 DSH_CONTEXT 环境变量来设置缺省上下文。
-A 在目标列表中包括缺省上下文中定义的所有设备。 您可以使用 -C 标志或 DSH_CONTEXT 环境变量来设置缺省上下文。 在 HMC 上,此标志处于禁用状态。
-- all-nodes上下文列表 在目标列表中包括 context_list 中列示的上下文中定义的所有节点。 缺省上下文未隐式地包括在此列表中。 此标志在 HMC 上已禁用。 -- all-nodes
-- all-devices 上下文列表 在目标列表中包括 context_list 中列示的上下文中定义的所有设备。 缺省上下文未隐式地包括在此列表中。 在 HMC 上,此标志处于禁用状态。
-C | -- 继续 (仅适用于交互方式)将节点保留在目标列表中,即使主机的远程 Shell 命令返回了非零退出值亦如此。
-C| -- context上下文 解析目标名称时要使用的缺省上下文。 上下文值必须与 /opt/ibm/sysmgt/dsm/pm/Context 目录中的有效上下文扩展模块对应。 例如,/opt/ibm/sysmgt/dsm/pm/Context/DSH.pm 文件是 DSH 上下文的模块。
- d | --devices device_list 指定要包括在目标列表中的设备目标的列表。 device_list 的语法为:

[context:] [user_ID@]device_name[, [context:] \

[user_ID@]device_name] ...

在 HMC 上,此标志处于禁用状态。

--devicershdevice_remote_shell 指定用于在设备目标上以远程方式执行命令的远程 Shell 命令的完整路径。 通过在路径前指定 context:,可以定义用于特定上下文的远程 Shell。 device_remote_shell 的语法为:

[context:]path[, [context:]path] ...

在 HMC 上禁用了此标志。-
- D | --devicegroups 设备组 在目标列表中包括 devicegroups 列表中指定的设备组中定义的所有设备。 devicegroups 的语法为:

[context:] [user_ID@]devicegroup[, [context:] \

[user_ID@]devicegroup] ...

在 HMC 上,此标志处于禁用状态。
-e | -- 执行 指示 command_list 指定要在远程目标上执行的本地脚本文件名以及参数。 脚本文件将被复制到远程目标,然后使用指定的参数以远程方式执行。 DSH_NODE_RCPDSH_DEVICE_RCP 环境变量分别指定用于将脚本文件复制到节点目标和设备目标的远程复制命令。
-E | -- environment environment_file 指定 environment_file 包含要在执行 command_list 前导出到目标的环境变量定义。 DSH_NODE_RCPDSH_DEVICE_RCP 环境变量分别指定用于将文件导出到节点目标和设备目标的远程复制命令。
-f | -- fanout fanout_value 指定一个扇出值作为以并发方式执行的远程 Shell 进程的最大数目。 可以通过指示扇出值 1 来指定串行执行。 如果未指定 -f ,那么将使用缺省扇出值 64
-F | -- output output_path 将标准输出复制到 output_path/target_name.output,并将标准错误复制到 output_path/target_name.error。 输出将继续被发送到标准输出和标准错误。 使用 -Q 标志可抑制标准输出和标准错误。
-i | -- 通知 指示目标未作出响应时,将提示继续以远程方式对该目标执行命令。 请同时指定 -v 标志和 -i 标志。
-l(小写 L) | --user user_ID 指定用于以远程方式执行命令的远程用户名。
-h | -- help 显示命令用法信息。
-n | -- nodes node_list 指定要包括在目标列表中的节点目标的列表。 node_list 的语法为:

[context:] [user_ID@]node_name[, [context:] \

[user_ID@]node_name] ...

-L | -- no-locale 指定不将本地主机的语言环境定义导出到远程目标。 在缺省情况下,将把本地主机语言环境定义导出到每个远程目标。 每次执行 dsh 命令时,都会将输出追加到文件中。
-- log 日志文件 启用日志记录功能并将日志记录到指定的 log_file
-m | -- monitor 通过显示在每个目标上执行命令期间生成的状态消息,监视远程 Shell 执行情况。
-N | -- nodegroups nodegroups 在目标列表中包括 nodegroups 列表中指定的节点组中定义的所有节点。 nodegroups 的语法为:

[context:] [user_ID@] nodegroup [, [context:] \

[user_ID@]nodegroup] ...

-o --node-options node_options 指定要传递给远程 Shell 命令并用于节点目标的选项。 您必须将指定的选项括在双引号 ("") 中,以便将其与 dsh 选项区分开。 通过在选项列表前指定 context:,可以定义用于特定上下文中的节点的选项。 node_options 的语法为:

[context:] " options " [, [context:] "options"] ...

- O | --device-options device_options 指定要传递给远程 Shell 命令并用于设备目标的选项。 您必须将指定的选项括在双引号中,以便将其与 dsh 选项区分开。 通过在选项列表前指定 context:,可以定义用于特定上下文中的设备的选项。 device_options 的语法为:

[context:] "options" [, [context:] "options"] ...

在 HMC 上,此标志处于禁用状态。
-Q |-- 静默 指定静默方式。 即,不将目标输出写至标准输出或标准错误。 监视消息将写至标准输出。
-q | -- show-config 显示与所有 DSH 实用程序命令相关的当前环境设置。 这包括所有当前已安装且有效的上下文的所有环境变量值和设置值。 每项设置都以 context: 作为前缀,以便标识该设置的源上下文。
-r | -- node-rsh node_remote_copy 指定用于将文件复制到节点目标或者从节点目标复制文件的远程 Shell 命令的完整路径。 通过在路径前指定 context:,可以定义用于特定上下文的远程 Shell 命令node_remote_copy 的语法为:

[context:]path[, [context:]path] ...

如果路径包含 rsync,那么将假定远程复制由 rsync 命令执行。
-- report report_path 启用报告生成,并指定保存报告的目录的路径。 -- report-name report_name 指定生成报告时要使用的名称。 如果未指定,那么名称缺省为 Unspecified。 此标志只能与 --report 标志配合使用。
-s| -- 流 指定在输出从每个目标变为可用时返回输出。 在返回输出之前,它不会等待 command_list 在目标上完成。
-S | -- 语法 csh | ksh 指定要在远程目标上使用的 Shell 语法。 如果未指定此标志,那么将使用 ksh 语法。
-t |-- timeout超时 指定等待来自任何当前正在执行的远程目标的输出的时间(以秒计)。 如果在指定的超时时间间隔内没有来自任何目标的输出,那么 dsh 命令将显示错误消息并终止对未能作出响应的远程目标执行。 如果未指定超时,那么 dsh 将无限期地等待继续处理来自所有远程目标的输出。 如果与 -i 标志一起指定此标志,那么将提示用户指定另一个超时时间间隔以等待输出。
-T | -- trace 启用跟踪方式。 dsh 命令在对每个目标执行期间,将把诊断消息发送到标准输出。
-v | -- 验证 在每个目标上执行任何远程命令之前,先验证该目标。 如果某个目标未作出响应,那么将取消对该目标执行远程命令。 如果与 -i 标志一起指定此标志,那么将提示用户重试验证请求。
-X env_list 忽略 dsh 环境变量。 此选项可以接受一个参数,该参数是不能忽略的环境变量名的列表并以逗号进行分隔。 如果此选项没有参数,或者该参数是空字符串,那么将忽略所有 dsh 环境变量。 此标志不能作为最后一个标志进行指定。
-V | -- 版本 显示 dsh 命令的版本信息。
描述
-z | -- exit-status 显示在每个目标上以远程方式执行的上一个非异步命令的退出状态。 如果对远程节点发出的命令在后台运行,那么不显示退出状态。 退出状态:如果远程 Shell 的退出值不为零,那么所执行的每个远程 Shell 的退出值都将包含在 dsh 命令所生成的消息中。 远程 Shell 的非零返回码表明在远程 Shell 中遇到错误。 此返回码与以远程方式发出的命令的退出码无关。 如果某个远程 Shell 遇到错误,那么将不会在该目标上执行远程命令。 如果 dsh 命令在未出错的情况下完成执行,并且所有远程 Shell 命令都在退出码为 0 的情况下完成,那么 dsh 命令退出码为 0。
  如果发生内部 dsh 错误或远程 shell 命令未成功完成,那么 dsh 命令退出值大于 0。 对于不成功的远程命令执行的每个连续实例,退出值将增大 1。 如果在后台运行远程发出的命令,那么远程发出的命令的退出代码为 0。 环境变量 DSH_CONTEXT 指定解析目标时要使用的缺省上下文。 此变量被 -C 标志覆盖。 DSH_DEVICE_LIST:指定一个包含设备目标列表的文件。
  -d 标志会覆盖此变量。 在 HMC 上,会忽略此环境变量。 DSH_DEVICE_OPTS:指定用于仅具有设备目标的远程 Shell 命令的选项。 此变量被 -O 标志覆盖。 在 HMC 上,会忽略此环境变量。 DSH_DEVICE_RCP:指定用于将本地脚本和本地环境配置文件复制到设备目标的远程复制命令的完整路径。
  在 HMC 上,会忽略此环境变量。 DSH_DEVICE_RSH:指定用于在设备目标上以远程方式执行命令的远程 Shell 的完整路径。 --device-rsh 标志会覆盖此变量。 在 HMC 上,会忽略此环境变量。 DSH_ENVIRONMENT:指定一个文件,此文件包含要在执行远程命令前导出到目标的环境变量定义。 此变量被 -E 标志覆盖。 DSH_FANOUT:指定扇出值。
  此变量被 -f 标志覆盖。 DSH_LOG:指定用于记录日志的文件的完整路径。 此变量被 --log 标志覆盖。 DSH_NODE_LIST:指定一个包含节点目标列表的文件。 DSH_NODE_LIST 变量已替换 WCOLL.Hel DSH_NODE_OPTS。 指定要用于仅具有节点目标的远程 Shell 命令的选项。 此变量被 -O 标志覆盖。 DSH_NODE_RCP
  指定要用于将本地脚本和本地环境配置文件复制到节点目标的远程复制命令的完整路径。 DSH_NODE_RSH:指定用于在节点目标上以远程方式执行命令的远程 Shell 的完整路径。 -r 标志会覆盖此变量。 DSH_NODEGROUP_PATH 指定包含 DSH 上下文的节点组文件的目录的冒号分隔列表。 在 DSH 上下文中指定 -a 标志时,将从此路径中的所有节点组文件中收集唯一节点名的列表。 DSH_OUTPUT
  指定标准输出副本和标准错误副本的基本文件名。 输出将继续被发送到标准输出和标准错误。 此变量被 -f 标志覆盖。 DSH_PATH:设置要在目标上使用的命令路径。 如果未设置 DSH_PATH,那么将使用远程 user_ID 的概要文件中定义的缺省路径。 DSH_PATH 不能用于对 HMC 运行 dsh 命令。 DSH_REPORT
  如果将此变量设置为用于保存报告的目录的绝对路径,那么会启用报告功能。 此变量被 --report 标志覆盖。 DSH_SYNTAX:指定要在远程目标上使用的 Shell 语法,即 ksh 或 csh。 如果未指定此变量,那么将采用 ksh 语法。 此变量被 -S 标志覆盖。 DSH_TIMEOUT:指定等待来自每个远程目标的输出的时间(以秒计)。 此变量被 -t 标志覆盖。 安全性:dsh 命令没有安全性配置要求。 所有远程命令安全性要求(配置、认证和授权)都由您为 dsh 配置的底层远程命令所确定。
  此命令假定您已在本地主机与远程目标之间配置认证和授权。 不支持交互式密码提示;对于一个远程目标,如果发生密码提示,或者对该远程目标进行的授权或认证失败,那么将显示错误,并且不执行命令。 安全性配置与远程环境和远程 Shell 命令相关,因此由用户定义。 当远程命令配置为 /usr/bin/rsh 并且此命令配置为使用 Kerberos 版本 5 时,您必须首先运行 Kerberos kinit 命令以获取授予凭单的凭单,并且必须确保 Kerberos 主体位于其中。 目标上远程用户的主目录中的 k5login 文件。

示例

  1. 要在节点目标 node1node2 上运行 ps 命令,请输入以下命令:
    dsh -n node1,node2 "ps"
  2. 要在 myhosts 文件中列示的每个节点目标上运行 ps 命令,请输入以下命令:
    DSH_NODE_LIST=./myhosts; dsh ps
  3. 要以交互方式输入要在 NodeGroup1 中定义的节点目标上执行的命令,请输入以下命令:
    dsh -N NodeGroup1
  4. 要显示所有 NIM 受管节点上以及 DSH 上下文节点组 NodeGroup2 中的用户数,请输入以下命令:
    dsh --all-nodes NIM -N DSH:NodeGroup2 "who | wc -l"
  5. 要以交互方式输入节点目标和设备目标的列表,然后以交互方式执行 date 命令,请输入以下命令:
    dsh -n - -d -
    将显示类似于以下的其他输入和输出:
    dsh node> node1
    dsh node> gregb@node2
    dsh node>
    dsh device> CSM:kathyc@device1
    dsh device>
    dsh> date  node1: Wed Apr 13 17:15:59 EDT 2005
    gregb@node2: Wed Apr 13 17:15:59 EDT 2005
    kathyc@device1: Wed Apr 13 17:15:59 EDT 2005
    dsh> exit #
  6. 要在集群中的所有节点上运行 ls 命令并忽略所有 dsh 环境变量,请输入以下命令:
    dsh -X -a ls
  7. 要在 node1 上运行 ps 命令并忽略除 DSH_NODE_OPTS 以外的所有 dsh 环境变量,请输入以下命令:
    dsh -n node1 -X ’DSH_NODE_OPTS’ ps