dsh コマンド

目的

複数のノードおよびハードウェア・デバイスでコマンドを並行して実行します。

構文

dsh -h dsh -V dsh -q dsh [ -a] [--all-nodes context_list]

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

node_list] [-N nodegroups] [-d device_list]

[-D devicegroups] [-C context]

[-c] [ -e ] [ -E environment_file

] [-f fanout] [ -F output_path]

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

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

node_options] [-O device_options] [-Q]

[-r node_remote_shell] [--device-rsh

device_remote_shell] [-s] [-S

csh | ksh] [-t timeout]

[-T ] [-v] [-X

env_list] [-z ] [--report

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

説明

dsh コマンドは、ノード、ハードウェア・デバイス、あるいは両方のリモート・ターゲットでコマンドを並行して実行します。ターゲットは、複数のコンテキストから選択できます。コンテキストは、ノードおよびデバイスの定義を含むターゲット・データベース (NIM データベースなど) です。 dsh コマンドは、指定されたターゲットごとにリモート・シェル・コマンドを発行します。すべてのノードからのコマンドの結果を簡単に管理できるように、フォーマットされた方法ですべてのターゲットからの出力を返します。/usr/bin/rsh は構文およびセキュリティーのモデルであり、dsh コマンドは DSM 分散シェル・ユーティリティーです。

注: 変更の始めdsh コマンドは、IPv4 ターゲット・デバイスでのみサポートされます。 IPv6 アドレスはサポートされていません。 変更の終わり

パラメーター

項目 説明
ターゲット・コンテキスト dsh コマンドのターゲット・コンテキストは、ターゲットまたはターゲット・グループが定義されているデータベースです。-C コンテキスト・フラグまたは DSH_CONTEXT 環境変数を使用してデフォルトのコンテキストを構成できます。いずれのパラメーターも指定されない場合、dsh コマンドが NIM 管理サーバーから実行されるときのデフォルトのコンテキストは NIM で、それ以外の場合のデフォルトのコンテキストは DSH です (DSH コンテキスト を参照)。コンテキスト拡張ファイルを /opt/ibm/sysmgt/dsm/pm/Context ディレクトリーにインストールすることにより、コンテキストは DSH ユーティリティー・コマンドで使用されます。 ターゲットまたはターゲット・グループのコンテキストは、ターゲット名をコンテキスト名で修飾することによって明示的に指定でき、非修飾ターゲット名にデフォルトのコンテキストを指定することによって暗黙的に定義できます (『ターゲット・リスト』を参照)。
DSH コンテキスト DSH コンテキストは、すべての DSH ユーティリティー・コマンド用の組み込みコンテキストです。 これは、ローカル・ファイル・システムに含まれるユーザー定義ノード・グループ・データベースを許可します。 DSH_NODEGROUP_PATH 環境変数は、ノード・グループ・データベースへのパスを指定します。このディレクトリー内の各ファイルは、ノード・グループを表し、グループ・メンバーであるノードごとに 1 つのホスト名または TCP/IP アドレスを含みます。ブランク行および # 記号で始まるコメント行は無視されます。DSH コンテキストのすべてのノードが要求された場合、DSH_NODEGROUP_PATH ディレクトリー内のすべてのグループから完全なノード・リストが作成され、/var/ibm/sysmgt/dsm/dsh/$DSH_NODEGROUP_PATH/AllNodes のキャッシュに入れられます。 このファイルは、グループ・ファイルが変更されたり、DSH_NODEGROUP_PATH ディレクトリーに追加されるたびに再作成されます。デバイス・ターゲットは、DSH コンテキストではサポートされません。
ターゲットの指定 ターゲットは、リモート・コマンドが発行されるノードまたはハードウェア・デバイスです。ノード・ターゲットは、-a、--all-nodescontext_list-n node_list、および -N nodegroups フラグ、または DSH_NODE_LIST 環境変数を使用して指定されます。 -N フラグと DSH_NODE_LIST 環境変数の両方が使用されている場合、グループおよびリストは、重複がある場合はすべてそれを除去してマージされます。
注: WCOLLDSH_NODE_LIST 環境変数によって置き換えられました。
デバイス・ターゲットは、-A、--all-devices context_list-d device_list、および -D devicegroups フラグ、または DSH_DEVICE_LIST 環境変数を使用して指定されます。 ターゲットの一部としてローカル・ホストが含まれる場合、command_list は、構成済みのリモート・シェルを介してではなくローカル・ホストで直接的に実行されます。ただし、ローカル・ホストでの実行のために user_ID が指定されている場合は除きます (「Remote user」を参照)。DSH_NODE_LIST および DSH_DEVICE_LIST 環境変数は、ターゲット・ノードおよびターゲット・デバイスをリストするファイルを指定します。ファイル・フォーマットは 1 行ごとに 1 ターゲットです。ブランク行および # 記号で始まるコメント行は無視されます。ノードとデバイスの両方のターゲットを同時に指定できますが、デバイスとノードの両方に同じターゲット名を使用することはできません。類似の名前が使用された場合、プログラムは重複するターゲットをスキップして、他のターゲットで実行を続行します。ノードおよびデバイスのターゲットは、ノード範囲を使用して指定することもできます。詳しくは、noderange ファイルを参照してください。複数回にわたって同じターゲットが指定された場合、リモート・コマンドは指定されたターゲットで 1 回実行されます。
ターゲット・リスト ターゲットおよびターゲット・グループは次のフォーマットを使用して指定されます。

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

ここで、context はターゲットの明示的なコンテキスト指定であり、user_ID はリモート側からコマンドをターゲットで実行する場合に使用するオプションのユーザー名であり、target はターゲットのコンテキストで許可されたターゲットの名前または TCP/IP アドレスです。noderange 式の場合、noderange 式の計算の結果であるリスト内の各ターゲットに対して user_ID が使用されます。 ターゲット・リストがダッシュ (-) のみを使用して指定される場合、ターゲットを対話式に指定することができます。ノードの場合のプロンプトは dsh node> で、デバイスの場合のプロンプトは dsh device> です。一度に 1 行で次の構文を使用してターゲット・リストを指定します。

[context:] [user_ID@] target

ここで、context はターゲットの明示的なコンテキスト指定であり、user_ID はリモート側からコマンドをターゲットで実行する場合に使用するオプションのユーザー名であり、target はターゲットのコンテキストで許可されたターゲットの名前または TCP/IP アドレスです。noderange 式の場合、noderange 式の計算の結果であるリスト内の各ターゲットに対して user_ID が使用されます。 ターゲット・リストがダッシュ (-) のみを使用して指定される場合、ターゲットを対話式に指定することができます。ノードの場合のプロンプトは dsh node> で、デバイスの場合のプロンプトは dsh device> です。 一度に 1 行で次の構文を使用してターゲット・リストを指定します。

[context:][user_ID@]target

完了したら、Ctrl-d を押して続行します。
コマンドの指定 リモート・ターゲットで実行するコマンドは、command_list dsh パラメーターによって指定されます。このパラメーターは、対話モードのコマンド・ラインでコマンドを入力するか、標準入力から command_list を提供するか、あるいは -e フラグを使用してローカル・スクリプトを実行することで指定できます。 command_list dsh パラメーターの構文は "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 が指定されている場合、リモート・シェル・コマンドは、セキュア・ログイン ID を確認するためにローカル・ホストで command_list を実行します。
リモート・シェル・コマンド リモート・ターゲットで実行するコマンドは、command_list dsh パラメーターによって指定されます。このパラメーターは、対話モードのコマンド・ラインでコマンドを入力するか、標準入力から command_list を提供するか、あるいは -e フラグを使用してローカル・スクリプトを実行することで指定できます。 command_list dsh パラメーターの構文は "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 が指定される場合、リモート・シェル・コマンドは、セキュア・ログインを確認するためにローカル・ホストで command_list を実行します。
リモートシェル環境 リモート・ターゲットで使用されるシェル環境のデフォルトは、リモート・コマンド実行に使用される user_ID 用に定義されたシェルです。リモート・コマンド実行に使用されるコマンド構文は、-S フラグを使用して指定できます。-S が指定されない場合、構文はデフォルトで ksh 構文になります。コマンドがリモート・ターゲットで実行される際に使用されるパスは、現行ユーザーのシェルで定義されている DSH_PATH 環境変数によって決定されます。DSH_PATH が設定されていない場合、使用されるパスはリモート・シェルのデフォルトのパスです。例えば、リモート・ターゲットのローカル・パスを設定するには、DSH_PATH=$PATH を使用します。-E フラグは、ローカル環境定義ファイルを各リモート・ターゲットにエクスポートします。このファイルで指定されている環境変数は、command_list の実行前にリモート・シェル環境で定義されます。
コマンドの実行 並行リモート・シェル・コマンド・プロセスの最大数 (ファンアウト) は、-f フラグまたは DSH_FANOUT 環境変数を使用して指定できます。ファンアウトは、並行して実行できるリモート・シェル・コマンドの数によって制限されます。 管理サーバーで DSH_FANOUT 値を使用して試し、さらに高い値が適切であるかどうかを調べることができます。リモート・コマンド実行のタイムアウト値は、-t フラグまたは DSH_TIMEOUT 環境変数を使用して指定できます。いずれかのリモート・ターゲットがタイムアウト値の時間内に標準出力または標準エラーのいずれかに出力を行わない場合、dsh コマンドはエラー・メッセージを表示して終了します。-s フラグを使用してストリーム・モードが指定される場合、出力は、各ターゲットから使用可能になった時点で返されます。このプロセスでは、出力を戻す前に command_list がすべてのターゲットで完了するのを待機しません。これにより、パフォーマンスが改善されますが、出力はソートされません。-z フラグは、command_list の中で最後にリモート・ノードで発行されたコマンドからの終了コードを表示するために使用されます。
注: OpenSSH は、最後に発行されたリモート・コマンドの終了状況をその終了状況として返します。
これは、dsh の動作に影響を与えます。また、-c フラグを使用する必要があります。リモート・ノードで発行されたコマンドがバックグラウンドで実行された場合、コマンドは終了状況を表示しません。-m フラグは、状況メッセージを標準出力に表示することによって、dsh コマンドの実行をモニターします。それぞれの状況メッセージの前には dsh> が付けられます。-T フラグは、dsh コマンド実行に関する診断トレース情報を提供します。デフォルトの設定値とリモート・ターゲットで実行された実際のリモート・シェル・コマンドが表示されます。リモート・ターゲットに対して、エラー検出またはリカバリー・メカニズムは提供されません。標準エラーおよび標準出力への dsh コマンド出力を分析して、適切な一連のアクションを判別することができます。対話モードでは、コマンドをリモート・ターゲットで実行できない場合 (例えば、リモート・シェル・コマンドの結果がゼロ以外の戻りコードである場合)、-c フラグが指定されていないと、dsh コマンドのこの呼び出しでは、後続のコマンドはこのノードに送信されません。
コマンドの出力 dsh コマンドは、各リモート・シェル・プロセスからの出力を表示するために待機して、その後で新しいリモート・シェル・プロセスを開始します。このデフォルトの動作は、-s フラグによって指定変更されます。dsh コマンド出力は、リモート・コマンドからの標準エラーおよび標準出力で構成されます。dsh 標準出力は、リモート・シェル・コマンドからの標準出力です。dsh 標準エラーは、リモート・シェル・コマンドからの標準エラーです。各行の前には、出力を生成したノードのホスト名が付けられています。ホスト名の後に、: 文字およびコマンド出力行が続きます。ノード別にグループ化された同一の出力を表示するためのフィルターは別々に提供されています。 詳しくは、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-nodescontext_list context_list にリストされているコンテキストで定義されたすべてのノードをターゲット・リストに組み込みます。デフォルトのコンテキストは、このリストに暗黙的に組み込まれていません。このフラグは HMC では使用不可になっています。--all-nodes
--all-devices context_list context_list にリストされているコンテキストで定義されたすべてのデバイスをターゲット・リストに組み込みます。デフォルトのコンテキストは、このリストに暗黙的に組み込まれていません。このフラグは HMC では使用不可になっています。
-C | --continue 対話モードでのみ、ホストに対するリモート・シェル・コマンドの終了値がゼロ以外である場合でも、ノードをターゲット・リスト内で保持します。
-C| --contextcontext ターゲット名を解決するときに使用するデフォルトのコンテキストです。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 では使用不可になっています。

--device-rshdevice_remote_shell デバイス・ターゲットでのリモート・コマンド実行に使用されるリモート・シェル・コマンドの絶対パスを指定します。特定のコンテキストのリモート・シェルは、パスの前に context: を含めることによって定義できます。device_remote_shell の構文は次のとおりです。

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

このフラグは HMC では使用不可になっています。-
-D | --devicegroups devicegroups devicegroups リストで指定されているデバイス・グループで定義されたすべてのデバイスをターゲット・リストに組み込みます。devicegroups の構文は次のとおりです。

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

[user_ID@]devicegroup]...

このフラグは HMC では使用不可になっています。
-e | --execute command_list がリモート・ターゲットで実行されるローカル・スクリプト・ファイル名および引数を指定することを示します。スクリプト・ファイルは、リモート・ターゲットにコピーされてから、指定された引数を使用してリモート側で実行されます。DSH_NODE_RCP および DSH_DEVICE_RCP 環境変数は、それぞれ、スクリプト・ファイルをノードおよびデバイスのターゲットにコピーするために使用するリモート・コピー・コマンドを指定します。
-E | --environment environment_file environment_filecommand_list の実行前にターゲットにエクスポートする環境変数定義が含まれることを示します。DSH_NODE_RCP および DSH_DEVICE_RCP 環境変数は、それぞれ、ファイルをノードおよびデバイスのターゲットにエクスポートするために使用するリモート・コピー・コマンドを指定します。
-f | --fanout fanout_value 並行実行中のリモート・シェル・プロセスの最大数に対するファンアウト値を指定します。ファンアウト値 1 を指定することによって、順次実行を指定できます。-f が指定されない場合、デフォルトのファンアウト値の 64 が使用されます。
-F | --output output_path 標準出力を output_path/target_name.output にコピーして、標準エラーを output_path/target_name.error にコピーします。出力は、引き続き、標準出力および標準エラーに送信されます。標準出力および標準エラーを抑止するには、-Q フラグを使用します。
-i | --notify ターゲットが応答していないことを示し、ターゲットに対するリモート実行を続行するようにプロンプトを出します。-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 指定された log_file へのロギングを使用可能に設定します。
-m | --monitor 各ターゲットでの実行中に状況メッセージを表示することによって、リモート・シェル実行をモニターします。
-N | --nodegroups nodegroups nodegroups リストで指定されているノード・グループで定義されたすべてのノードをターゲット・リストに組み込みます。nodegroups の構文は次のとおりです。

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

[user_ID@]nodegroup]...

-o--node-options node_options ノード・ターゲットに対するリモート・シェル・コマンドに受け渡すオプションを指定します。オプションは、dsh オプションと区別するために二重引用符 ("") で囲んで指定する必要があります。 特定のコンテキストのノードに対するオプションは、オプション・リストの前に context: を含めることによって定義できます。node_options の構文は次のとおりです。

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

-O | --device-options device_options デバイス・ターゲットに対するリモート・シェル・コマンドに受け渡すオプションを指定します。オプションは、dsh オプションと区別するために二重引用符で囲んで指定する必要があります。特定のコンテキストのデバイスに対するオプションは、オプション・リストの前に context: を含めることによって定義できます。device_options の構文は次のとおりです。

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

このフラグは HMC では使用不可になっています。
-Q |--silent サイレント・モードを指定します。ターゲットの出力は、標準出力または標準エラーに書き込まれません。モニター・メッセージは標準出力に書き込まれます。
-q | --show-config すべての DSH ユーティリティー・コマンドに関連する現行の環境設定を表示します。これには、現在インストール済みの有効なすべてのコンテキストに関するすべての環境変数および設定の値が含まれます。 設定値のソース・コンテキストを示すために、それぞれの設定値の前に context: が付けられます。
-r | --node-rsh node_remote_copy ノード・ターゲットとの間でファイルをコピーするために使用するリモート・シェル・コマンドの絶対パスを指定します。特定のコンテキストのリモート・シェル・コマンドは、パスの前に context: を含めることによって定義できます。node_remote_copy の構文は次のとおりです。

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

パスに rsync が含まれる場合、rsync コマンドがリモート・コピーを実行することが想定されます。
--report report_path レポート生成を使用可能に設定して、レポートの保存先となるディレクトリーへのパスを指定します。--report-name report_name レポートの生成時に使用する名前を指定します。指定しないと、名前はデフォルトの Unspecified になります。このフラグは、--report フラグを指定する場合にのみ使用できます。
-s| --stream 出力を各ターゲットから使用可能になった時点で返すことを指定します。出力を返す前に command_list がターゲットで完了するのを待機しません。
-S | --syntax csh | ksh リモート・ターゲットで使用するシェル構文を指定します。指定しない場合、ksh 構文が使用されます。
-t |--timeouttimeout 現在実行中のリモート・ターゲットからの出力を待機する時間を秒単位で指定します。指定されたタイムアウトまでにターゲットから出力を得られない場合、dsh コマンドはエラー・メッセージを表示して、応答に失敗したリモート・ターゲットに対する実行を終了します。タイムアウトが指定されない場合、dsh は、無制限に待機して、すべてのリモート・ターゲットからの出力の処理を続行します。 -i フラグと同時に指定された場合、ユーザーに対して、出力を待機する追加のタイムアウト間隔を指定するよう求めるプロンプトが出されます。
-T | --trace トレース・モードを使用可能に設定します。dsh コマンドは、各ターゲットに対する実行中に診断メッセージを標準出力に表示します。
-v | --verify リモート・コマンドをターゲットで実行する前に、各ターゲットを検査します。ターゲットが応答しない場合、このターゲットに対するリモート・コマンドの実行は取り消されます。-i フラグと同時に指定される場合、ユーザーに対して、検査要求を再試行するよう求めるプロンプトが出されます。
-X env_list dsh 環境変数を無視します。このオプションでは、無視してはならない環境変数名のコンマ区切りリストを引数として指定できます。このオプションに対する引数がない場合、あるいは引数が空ストリングである場合、すべての dsh 環境変数が無視されます。このフラグを最後のフラグとして指定することはできません。
-V | --version dsh コマンドのバージョン情報を表示します。
項目 説明
-z | --exit-status 各ターゲットに対して最後にリモート側で実行された非同期コマンドの終了状況を表示します。リモート・ノードで発行されたコマンドがバックグラウンドで実行された場合、終了状況は表示されません。終了状況リモート・シェルの終了値がゼロ以外の場合、各リモート・シェル実行の終了値は、dsh コマンドからのメッセージに表示されます。リモート・シェルからのゼロ以外の戻りコードは、リモート・シェルでエラーが発生したことを示します。この戻りコードは、リモート側で発行されたコマンドの終了コードには関連していません。 リモート・シェルでエラーが発生した場合、そのターゲットに対するリモート・コマンドの実行はバイパスされます。dsh コマンドがエラーなしに実行され、すべてのリモート・シェル・コマンドが終了コード 0 で完了した場合、dsh コマンドの終了コードは 0 です。
  dsh 内部エラーが発生するか、リモート・シェル・コマンドが正常に完了しない場合、dsh コマンドの終了値は 0 より大きくなります。終了値は、失敗したリモート・コマンド実行の一連のインスタンスごとに 1 ずつ増加します。リモート側で発行されたコマンドがバックグラウンドで実行される場合、リモート側で発行されたコマンドの終了コードは 0 です。環境変数 DSH_CONTEXT ターゲットを解決するときに使用するデフォルトのコンテキストを指定します。この変数は、-C フラグによって指定変更されます。DSH_DEVICE_LIST デバイス・ターゲットのリストを含むファイルを指定します。
  この変数は、-d フラグによって指定変更されます。この環境変数は HMC では無視されます。DSH_DEVICE_OPTS デバイス・ターゲットに対するリモート・シェル・コマンドでのみ使用するオプションを指定します。この変数は、-O フラグによって指定変更されます。この環境変数は HMC では無視されます。DSH_DEVICE_RCP ローカル・スクリプトおよびローカル環境構成ファイルをデバイス・ターゲットにコピーするために使用されるリモート・コピー・コマンドの絶対パスを指定します。
  この環境変数は HMC では無視されます。DSH_DEVICE_RSH デバイス・ターゲットでのリモート・コマンド実行に使用するリモート・シェルの絶対パスを指定します。この変数は、--device-rsh フラグによって指定変更されます。この環境変数は HMC では無視されます。DSH_ENVIRONMENT リモート・コマンドの実行前にターゲットにエクスポートする環境変数定義が含まれるファイルを指定します。この変数は、-E フラグによって指定変更されます。DSH_FANOUT ファンアウト値を指定します。
  この変数は、-f フラグによって指定変更されます。DSH_LOG ロギングに使用するファイルの絶対パスを指定します。この変数は、--log フラグによって指定変更されます。DSH_NODE_LIST ノード・ターゲットのリストを含むファイルを指定します。 WCOLL.Hel DSH_NODE_OPTS は、DSH_NODE_LIST 変数によって置き換えられました。ノード・ターゲットだけに、リモート・シェル・コマンドに使用されるオプションが指定されます。この変数は、-o フラグによって指定変更されます。DSH_NODE_RCP
  ローカル・スクリプトおよびローカル環境構成ファイルをノード・ターゲットにコピーするために使用するリモート・コピー・コマンドの絶対パスを指定します。DSH_NODE_RSH ノード・ターゲットでのリモート・コマンド実行に使用するリモート・シェルの絶対パスを指定します。 この変数は、-r フラグによって指定変更されます。DSH_NODEGROUP_PATH DSH コンテキストのノード・グループ・ファイルを含むディレクトリーのコロンで区切られたリストを指定します。DSH コンテキストで -a フラグが指定されている場合、パスのすべてのノード・グループ・ファイルから固有のノード名のリストが収集されます。DSH_OUTPUT
  標準出力および標準エラーのコピー用の基本ファイル名を指定します。出力は、引き続き、標準出力および標準エラーに送信されます。この変数は、-F フラグによって指定変更されます。DSH_PATH ターゲットで使用するコマンド・パスを設定します。 DSH_PATH が設定されていない場合、リモート側の user_ID のプロファイルで定義されているデフォルト・パスが使用されます。dsh コマンドを HMC に対して実行するために、DSH_PATH を使用することはできません。DSH_REPORT
  レポートの保存先となるディレクトリーの絶対パスが設定されている場合に、レポートを使用可能に設定します。この変数は、--report フラグによって指定変更されます。DSH_SYNTAX リモート・ターゲットで使用するシェル構文 (ksh または csh) を指定します。指定しない場合、ksh 構文が使用されます。この変数は、-S フラグによって指定変更されます。DSH_TIMEOUT 各リモート・ターゲットからの出力を待機する時間を秒単位で指定します。この変数は、-t フラグによって指定変更されます。セキュリティー dsh コマンドにセキュリティー構成要件はありません。すべてのリモート・コマンド・セキュリティー要件 (構成、認証、および許可) は、dsh 用に構成された基礎となるリモート・コマンドによって課せられます。
  このコマンドでは、ローカル・ホストとリモート・ターゲットの間で認証および許可が構成されていることが想定されます。対話式パスワード・プロンプトはサポートされません。パスワード・プロンプトが出された場合、あるいはリモート・ターゲットに対する許可または認証が失敗した場合、そのリモート・ターゲットに対してエラーが表示され、実行はバイパスされます。リモート環境およびリモート・シェル・コマンドに関連するセキュリティー構成は、ユーザー定義です。 リモート・コマンドが /usr/bin/rsh として構成されていて、このコマンドが Kerberos バージョン 5 を使用するように構成されている場合、最初に Kerberos kinit コマンドを実行してチケット許可チケットを取得し、Kerberos プリンシパルがターゲット上のリモート・ユーザーのホーム・ディレクトリーの k5login ファイル内にあることを確認する必要があります。

  1. ノード・ターゲット node1 および node2 で 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. ノード・ターゲットおよびデバイス・ターゲットのリストを対話式に入力してから、日付コマンドを対話モードで実行するには、次のように入力します。
    
    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. node1ps コマンドを実行して、DSH_NODE_OPTS を除くすべての dsh 環境変数を無視するには、次のように入力します。
    dsh -n node1 -X ’DSH_NODE_OPTS’ ps