英語フランス語スペイン語

OnWorksファビコン

pdsh - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーター上の OnWorks 無料ホスティング プロバイダーで pdsh を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド pdsh です。

プログラム:

NAME


pdsh - ホストのグループに並行してコマンドを発行します。

SYNOPSIS


PDSH [オプション]... 指図

DESCRIPTION


PDSH の変種です rsh(1)コマンド。 ようではない rsh(1)、単一のサーバー上でコマンドを実行します。
リモートホスト、 PDSH 複数のリモート コマンドを並行して実行できます。 PDSH 「スライディング」を使用します
窓」(または 扇形に広がります) のスレッドを使用して、開始ホスト上のリソースを節約しながら許可します。
いくつかの接続がタイムアウトします。

日時 PDSH SIGINT(ctrl-C)を受け取り、現在のスレッドのステータスを一覧表示します。 二番目の
XNUMX秒以内のSIGINTは、プログラムを終了します。 保留中のスレッドはによってキャンセルされる場合があります
ctrl-CからXNUMX秒以内にctrl-Zを発行します。 保留中のスレッドは、まだスレッド化されていないスレッドです。
開始されたか、リモートホストに接続中です。

コマンドラインでリモートコマンドが指定されていない場合、 PDSH インタラクティブに実行され、
コマンドの入力を求めるプロンプトを表示し、キャリッジリターンで終了したときにコマンドを実行します。 の
対話型モードでは、最初のコマンドでタイムアウトしたターゲット ノードは接続されません。
後続のコマンド、および感嘆符の接頭辞が付いているコマンドは実行されます。
ローカルシステム。

のコア機能 PDSH 動的にロード可能なモジュールによって補完される場合があります。 の
モジュールは新しい接続プロトコルを提供する場合があります(標準の接続プロトコルを置き換える) rcmd(3) プロトコル
によって使用される rsh(1))、フィルタリング オプション (例: 「ダウン」しているホストをターゲットから削除する)
リスト)、および/またはホスト選択オプション (例: -a 構成からすべてのホストを選択します
ファイル。)。 デフォルトでは、 PDSH 少なくとも XNUMX つの「rcmd」モジュールがロードされている必要があります。 を参照してください。 RCMD モジュール
詳細については、セクションを参照してください。

RCMD モジュール


方法 PDSH リモート ホスト上でコマンドを実行する場合は、実行時に次を使用して選択できます。
  -R オプション(を参照 OPTIONS 下)。 この機能は最終的には次のように実装されます。
動的にロード可能なモジュールであるため、使用可能なオプションのリストは異なる場合があります。
インストールからインストールへ。 現在利用可能な rcmd モジュールのリストは、次のときに出力されます。
のいずれかを使用して、 -h, -Vまたは -L オプション。 デフォルトの rcmd モジュールも表示されます
-h-V オプション。

の一覧 rcmd 現在配布されているモジュール PDSH 続く。

rshBSDの内部のスレッドセーフな実装を使用します rcmd(3)を使用してコマンドを実行する
標準 rsh(1)プロトコル。

exec 対象ホストごとに任意のコマンドを実行します。 の最初の PDSH リモート
argument は、実行するローカル コマンドと、その後に続く引数です。 いくつかの
コマンドラインでは、次のような単純なパラメータが置き換えられます。 %h ターゲットのために
ホスト名、 %u リモートユーザー名の場合、および %n リモート ランク [0-n] の場合 (
リテラル % つかいます %%)。 たとえば、次のような場合は、 ssh
実行するモジュール hostname(1) ホスト間 foo[0-10]:

pdsh -R exec -w foo[0-10] ssh -x -l %u %h ホスト名

このコマンドラインは実行されます grep(1) ファイル全体で並列
console.foo[0-10]:

pdsh -R exec -w foo[0-10] grep BUG console.%h

sshは次のバリアントを使用します ポペン(3)の複数のコピーを実行するには ssh(1)コマンド。

mrshこのモジュールは さん(1)リモートホストでジョブを実行するためのプロトコル。 mrsh
プロトコルはクレデンシャルベースの認証を使用し、割り当てる必要はありません
予約済みポート。 他の側面では、rsh とまったく同じように動作します。 リモートノードは次のとおりである必要があります
ランニング Mrshd(8) mrsh モジュールが動作するようにするため。

qsh が許可する PDSH QsNet 経由で MPI ジョブを実行します。 Qshell は現在の作業内容を伝播します。
ディレクトリ、pdsh 環境、および Elan 機能をリモート プロセスに提供します。 の
次の環境変数も環境に追加されます: RMS_RANK、
RMS_NODEID、RMS_PROCID、RMS_NNODES、および RMS_NPROCS。 以来 PDSH setuid を実行する必要がある
qshell サポートの root ですが、qshell は直接の伝播をサポートしません。
LD_LIBRARY_PATH および LD_PREOPEN。 代わりに、QSHELL_REMOTE_LD_LIBRARY_PATH と
QSHELL_REMOTE_LD_PREOPEN 環境変数が使用される可能性があり、
設定されている場合、qshell デーモンによって LD_LIBRARY_PATH および LD_PREOPEN に再マップされます。

mqsh qshell に似ていますが、rsh プロトコルの代わりに mrsh プロトコルを使用します。

krb4 krb4モジュールを使用すると、ユーザーはで認証した後にリモートコマンドを実行できます。
ケルベロス。 もちろん、リモートrshdデーモンはkerberizedする必要があります。

xcpu xcpuモジュールは、xcpuサービスを使用してリモートコマンドを実行します。

OPTIONS


使用可能なオプションのリストは、実行時に次のリストを補足することによって決定されます。
標準 PDSH ロードによって提供されるオプションを含むオプション rcmdmiscの モジュール。 いくつかの
場合によっては、モジュールによって提供されるオプションが互いに競合する可能性があります。 これらの場合、
モジュールには互換性がなく、最初にロードされたモジュールが優先されます。

スタンダード ターゲット ノードリスト オプション


-w ターゲット、..。
指定されたホストのリストをターゲットにするか、フィルタリングします。 他のノードでは使用しないでください
選択オプション(例 -a, -g、利用可能な場合)。 スペースは許可されていません
カンマ区切りのリスト。 の引数 ターゲット リストには通常のホストが含まれる場合があります
名前、ホストリスト形式のホストの範囲(を参照) ホストリスト 表現)、または単一
stdin上のホストのリストを読み取るための `-'文字。

ホストまたはホストリストの前に「-」文字が付いている場合、これらのホストは次のようになります。
明示的に除外されます。 引数の前に単一の `^ '文字が付いている場合は、
XNUMX行にXNUMXつずつ、ホストのリストを含むファイルへのパスと見なされます。 アイテムの場合
`/ '文字で始まり、正規表現と見なされます。
ホストのリストをフィルタリングします(正規表現引数は、オプションで末尾に付けることもできます)
別の「/」、例:/ node。* /)。 正規表現またはファイル名の引数も前に置くことができます
それらのホストを含​​める代わりに除外するマイナス `-'で。

ホストのリストの前に「user @」を付けて、リモートユーザー名を指定することもできます。
デフォルトよりも、または「rcmd_type:」で代替のrcmd接続タイプを指定します
これらのホスト。 一緒に使用する場合は、最初にrcmdタイプを指定する必要があります。
「ssh:user1 @ host0」は、sshを使用してユーザー「user0」としてhost1に接続します。

-x ホスト、ホスト、..。
指定されたホストを除外します。 他のターゲットノードと組み合わせて指定できます
などのリストオプション -a-g (利用可能な場合)。 ホストリストは、次のように指定することもできます。
  -x オプション(を参照してください ホストリスト 表現 以下のセクション)。 への引数 -x かもしれません
また、説明されているように、ファイル名( `^ ')と正規表現(' / ')文字が前に付きます
上記の場合、結果のホストは、それらがに与えられたかのように除外されます
-w 前にマイナスの `-'文字を付けます。

スタンダード PDSH オプション


-S リモート コマンドの戻り値のうち最大のものを返します。

-h 使用状況メニューを出力して終了します。 利用可能な rcmd モジュールのリストも出力されます。
使用方法メッセージの最後に。

-s AIX の場合のみ、リモート コマンド stderr と stdout を XNUMX つのソケットに分離します。

-q オプション値とターゲットノードリストを一覧表示し、アクションなしで終了します。

-b Ctrl-C ステータス機能を無効にして、XNUMX 回の Ctrl-C で並列ジョブを強制終了できるようにします。 (バッチ
ファッション)

-l user
このオプションは、次の条件に従って、別のユーザーとしてリモート コマンドを実行するために使用できます。
認可。 BSD rcmd の場合、これは、呼び出し元のユーザーとシステムがリストされている必要があることを意味します。
ユーザーの .rhosts ファイル内 (root の場合でも)。

-t
接続タイムアウトを設定します。 デフォルトは10秒です。

-u
リモート コマンドの実行を許可する時間の制限を設定します。 デフォルト
制限はありません。 使用する場合は、「制限事項」の注を参照してください。 -u sshで。

-f
同時リモート コマンドの最大数を次のように設定します。 。 デフォルトは
32.

-R
rcmdモジュールをに設定します 。 このオプションは、PDSH_RCMD_TYPEを介して設定することもできます。
環境変数。 利用可能な rcmd モジュールのリストは、次の方法で取得できます。 -h,
-Vまたは -L オプション。 デフォルトは次のようにリストされます。 -h or -V。

-M 名前、...
複数の場合 miscの モジュールはに同じオプションを提供します PDSH、最初のモジュール
初期化された「wins」以降のモジュールはロードされません。 NS -M オプションにより、
他のすべてのモジュールよりも先に強制的に初期化される、指定するモジュールのリスト。
事実上、競合することなくロードすることを保証します(競合しない限り)
お互い)。 このオプションは、PDSH_MISC_MODULES環境を介して設定することもできます
変数に保存します.

-L ロードされたすべての情報を一覧表示します PDSH モジュールと終了します。

-N 出力行の hostname: プレフィックスを無効にします。

-d SIGINTを受信したときに、より完全なスレッドステータスを含め、接続を表示します
完了したら、stderrのコマンド時間統計。

-V 出力 PDSH バージョン情報、現在ロードされているモジュールのリスト、および
出口。

qsh/mqsh モジュール オプション


-n ノードごとのタスク
ノードごとに生成されるタスクの数を設定します。 デフォルトは 1 です。

-m コロナ新型ウィルス(COVID-XNUMX)やメンタルヘルスの崩壊を避ける為の | 周期的
ノードへのプロセスのブロック割り当てと循環割り当てを設定します。 デフォルトはブロックです。

-r レールマスク
マルチレール システム上のジョブのレール ビットマスクを設定します。 デフォルトのレールマスクは 1 です。
これはレール 0 のみに対応します。 引数に設定される各ビット -r に対応している
システム上のレールなので、値 2 はレール 1 のみに対応し、値 3 はレール XNUMX にのみ対応します。
レール 1 とレール 0 の両方を使用することを示します。

モジュール オプション


-a マシンファイルからすべてのノードをターゲットにします。

性別 モジュール オプション


以下に示す性別オプションに加えて、性別属性 pdsh_rcmd_type
性別データベースで代替の rcmd 接続タイプを指定するために使用することもできます。
この属性を持つホストの pdsh デフォルト。 たとえば、
性別ファイル

host0 pdsh_rcmd_type=ssh

引き起こす PDSH rsh がデフォルトであっても、ssh を使用して host0 に接続します。 これはできる
コマンドラインで「rcmd_type:host0」構文を使用してオーバーライドできます。

-A 性別データベース内のすべてのノードをターゲットにします。 の -A オプションは、リストされているすべてのホストをターゲットにします
性別 -- デフォルトで一部のホストを省略したい場合は、 -a 以下のオプション。

-a 「pdsh_all_skip」を持つノードを除く、性別データベース内のすべてのノードをターゲットにします
属性。 これは、「pdsh -A -X pdsh_all_skip ...」を実行するための省略表現です。

-g attr[=val][,attr[=val],...]
指定された性別属性のいずれかに一致するターゲット ノード (オプションあり)
値)。 との衝突 -a オプション。 他のノードと組み合わせて使用​​する場合
のような選択オプション -w -g オプションは提供されたノード リストから選択します。
性別ファイル全体からではなく。 それ以外の場合、このオプションは、
デフォルトで性別データベースに代替ホスト名が登録されます。 の -i が提供するオプション
性別モジュールを使用して、これらを正規の性別に変換できます。
ホスト名。 インストールされているバージョンのジェンダーがサポートしている場合、属性は
-g 性別の形をとることもあります クエリ。 性別 クエリ を問い合わせます
性別の結合、交差、相違、または補完のための性別データベース
属性と値。 集合演算共用体は XNUMX つのパイプ記号で表されます。
('||')、XNUMX つのアンパサンド記号による交差 ('&&')、XNUMX つのマイナスによる差
記号 (「--」)、チルダ (「~」) で補完します。 括弧を使用して変更できます
操作の順序。 を参照してください。 ノード属性(1) 性別の例のマンページ
クエリ.

-X attr[=val][,attr[=val],...]
指定された性別属性のいずれかに一致するノードを除外します (オプションで
値)。 このオプションは、他のノードと組み合わせて使用​​できます。
選択オプション(例 -w, -g, -a, -X 性別の形をとることもあります クエリ.
性別についてはドキュメントを参照してください -g 詳細については、オプションを参照してください
性別 クエリ.

-i 正規ホスト名と代替ホスト名間の変換を要求します。

-F ファイル名
性別情報を読む ファイル名 システムのデフォルトの性別ファイルの代わりに。
If ファイル名 絶対パスを指定しない場合は、相対パスとみなされます。
で指定されたディレクトリ PDSH_GENDERS_DIR 環境変数(の/ etc デフォルト)。
代替性別ファイルは、 PDSH_GENDERS_FILE
環境変数。

ノードアップダウン モジュール オプション


-v libnodeupdown によって「ダウン」と見なされるターゲット ノードを削除します。

スラーム モジュール オプション


この スラーム モジュール ことができます PDSH 現在実行中の SLURM ジョブに基づいてノードをターゲットにします。 の
スラーム 通常、モジュールは他のすべてのノード選択オプションが実行された後に呼び出されます。
処理され、ノードが選択されていない場合、モジュールは実行中のノードを読み取ろうとします。
SLURM_JOBID 環境変数の jobid (SLURM での実行時に設定されます)
割り当て)。 SLURM_JOBID が無効なジョブを参照している場合、そのジョブは警告なしに無視されます。

-j ジョブID[,ジョブID,...]
SLURM ジョブに割り当てられたノードのターゲット リスト ジョブID。 このオプションを使用することもできます
複数の SLURM ジョブをターゲットにするには、複数回実行します。 特別な引数「all」は次のようになります。
SLURM ジョブを実行しているすべてのノードをターゲットにするために使用されます。例: -j .

-P パーティション[,パーティション,...]
SLURM パーティションに含まれるノードのターゲット リスト パーティション。 このオプションは
複数の SLURM パーティションをターゲットにするために複数回使用されるか、パーティションが
カンマ区切りのリストで指定します。

トルク モジュール オプション


この トルク モジュール ことができます PDSH 現在実行中の Torque/PBS ジョブに基づいてノードをターゲットにします。
スラームモジュールと同様に、 トルク モジュールは通常、他のすべてのノードの後に​​呼び出されます
選択オプションが処理されており、ノードが選択されていない場合、モジュールは
PBS_JOBID 環境変数 (実行時に設定される) から実行中のジョブ ID を読み取ろうとします。
トルク配分の下で実行されます)。

-j ジョブID[,ジョブID,...]
Torque ジョブに割り当てられたノードのターゲット リスト ジョブID。 このオプションを使用することもできます
複数のトルク ジョブをターゲットにするには、複数回実行します。

実効値 モジュール オプション


この 実効値 モジュールを使用すると、pdsh が RMS リソースに基づいてノードをターゲットにすることができます。 の 実効値 モジュールは
通常、他のすべてのノード選択オプションの後で、ノードが選択されていない場合に呼び出されます。
選択すると、モジュールは RMS_RESOURCEID 環境変数を調べて、
ホストのターゲット リストを RMS リソース内のノードに設定します。 無効なリソースがある場合、
示されている場合、変数は黙って無視されます。

SDR モジュール オプション


SDR モジュールは、IBM SP 上のシステム データ リポジトリを介したターゲット ホストをサポートします。

-a SDR 内のすべてのノードをターゲットにします。 リストは「信頼できるホスト名」から生成されます。
デフォルトではSDR。

-i 該当する場合、SDR 内でホスト名を信頼できるホスト名と初期名の間で変換します。 もしも
ターゲット ホスト名が SDR 内の初期ホスト名または信頼できるホスト名と一致する、
代替名が置き換えられます。 したがって、初期ホスト名で構成されるリストは
代わりに、信頼できるホスト名のリストに置き換えられます。 たとえば、使用するときは、
  -a 上記では、SDR 内のすべての初期ホスト名が対象となります。

-v ターゲット上の SDR で応答なしとしてマークされているノードをターゲットにしないでください。
インターフェース。 (ホスト名が SDR に表示されない場合、その名前は SDR に残ります。
ターゲットホストリスト。)

-G と組み合わせて -a、すべてのパーティションが含まれます。

ノード属性 モジュール オプション


この ノード属性 モジュールは、 ノード属性(1)コマンド。
ジョブの設定方法については、 性別 このモジュールのサポート オプションのリストについては、上のセクションを参照してください。 オプション
との使用法 ノード属性 モジュールは同じです 性別、上記を除き、
-i オプションは次の場合にのみ使用できます -a or -g. 注意: このモジュールは非常に古いモジュールでのみ動作します
性別のリリース ノード属性(1) コマンドは、 -r オプションの前に、
libgenders API が利用可能になりました。 新しいバージョンのジェンダーを実行しているユーザーは、
性別 代わりにモジュール。

dshグループ モジュール オプション


dshgroup モジュールを使用すると、pdsh が dsh (または Dancer のシェル) スタイルのグループ ファイルを使用できるようになります。
/etc/dsh/group/ または ~/.dsh/グループ/。 デフォルトの検索パスは、
DSGHGROUP_PATH 環境変数。検索するディレクトリのコロンで区切られたリスト。 の
DSGHGROUP_PATH のデフォルト値は /etc/dsh/group です。

-g グループ名、...
dsh グループ ファイル「グループ名」内のターゲット ノードが次のいずれかで見つかりました。 ~/.dsh/グループ/グループ名
または /etc/dsh/グループ/グループ名。

-X グループ名、...
dsh グループ ファイル「groupname」内のノードを除外します。

の強化として PDSH、dshgroup ファイルには、オプションで他の dshgroup ファイルを含めることができます。
特別 #include STRING 構文。 に対する議論 #include ファイルパス、または
グループ名。この場合、グループ ファイルの検索に使用されるパスは次のようになります。
グループが指定されていたのは、 -g.

ネットグループ モジュール オプション


netgroup モジュールを使用すると、pdsh が標準のネットグループ エントリを使用してターゲットのリストを作成できるようになります。
ホスト。 (/etc/netgroup または NIS)

-g グループ名、...
ネットグループ「グループ名」内のターゲットノード。

-X グループ名、...
ネットグループ「グループ名」内のノードを除外します。

ENVIRONMENT 変数


PDSH_RCMD_TYPE
に相当 -R オプションを使用すると、この環境変数の値は次の目的で使用されます。
pdsh が使用するデフォルトの rcmd モジュールを設定します (ssh、rsh など)。

PDSH_SSH_ARGS
標準引数をオーバーライドします。 PDSH に渡ります ssh(1) コマンド ("-2 -a -x
-l%u %h")。パラメータの使用 %u, %h, %n (に文書化されているように、 rcmd/exec
上記のセクション) はオプションです。 これらのパラメータが欠落している場合は、 PDSH それらを追加します
これらは必須であると想定されているため、ssh コマンドラインに追加します。

PDSH_SSH_ARGS_APPEND
追加のオプションを ssh(1) によって呼び出されるコマンド PDSH。 例えば、
PDSH_SSH_ARGS_APPEND="-q" は ssh を Quiet モードで実行します。または、"-v" は、
SSH の冗長性。 (注: これらの引数は実際には ssh の先頭に付加されます。
コマンドラインを使用して、ssh へのターゲット ホスト名引数の前にそれらが表示されるようにします。)

WCOLL 他のノード選択オプションが使用されていない場合、WCOLL 環境変数は次のようになります。
ターゲット ホストのリストが読み取られるファイル名に設定されます。 ファイルは、
ホストのリストが XNUMX 行に XNUMX つずつ含まれます (ただし、各行にホストリストが含まれる場合もあります)
表現。 見る ホストリスト 表現 以下のセクション)。

DSHPATH
設定すると、DSHPATH のパスがリモート プロセスの PATH として使用されます。

FANOUT を設定します。 PDSH ファンアウト (説明を参照) -f 上記)。

ホストリスト 表現


上のセクションで述べたように PDSH 一般形式のホストのリストを受け入れます: prefix[nm,l-
k,...] (n < m および l < k など) は、ホストの明示的なリストの代替として使用されます。 これ
form を正規表現文字クラス (次のように表される) と混同しないでください。
「[]」)。 たとえば、foo[19] は foo1 または foo9 に一致する式を表しませんが、
むしろ、縮退したホストリスト foo19 を表します。

ホストリスト構文は、「prefixNNN」という名前が付いたクラスターでの便宜のみを目的としています。
範囲の規則と指定は必要であると考えるべきではありません -- これは
foo1,foo9 は、そのように指定することも、ホストリスト foo[1,9] によって指定することもできます。

いくつかの使用例を次に示します。

foo01、foo02、...、foo05 でコマンドを実行します。
pdsh -w foo[01-05] コマンド

foo7、foo9、foo10 でコマンドを実行します
pdsh -w foo[7,9-10] コマンド

foo0、foo4、foo5 でコマンドを実行します
pdsh -w foo[0-5] -x foo[1-3] コマンド

ホスト名のサフィックスもサポートされています。

Run command on foo0-eth0,foo1-eth0,foo2-eth0,foo3-eth0
pdsh -w foo[0-3]-eth0 コマンド

読者への注意として、一部のシェルはパターンの角かっこ( '['および ']')を解釈します
マッチング。 シェルによっては、範囲リストをで囲む必要がある場合があります
引用符。 たとえば、tcshでは、上記の最初の例は次のように実行する必要があります。

pdsh -w "foo[01-05]" コマンド

原点


元々はIBMの書き換えでした dsh(1)ジム・ガーリック[メール保護]> LLNL の ASCI Blue について-
パシフィック IBM SP システム。 現在、LLNL の Linux クラスターで使用されています。

制限


使用時 ssh リモート実行の場合、ssh の標準エラー出力が標準エラー出力に組み込まれることが期待されます。
リモートコマンド。 呼び出されたとき PDSH、それは不可能です ssh を促す
RSA/DSA キーが適切に設定されている場合のパスワードなど。 ssh 実装
接続タイムアウト オプションをサポートします。 PDSH そのオプションを使用してタイムアウトを強制しようとします
(例: OpenSSH の -oConnectTimeout=T)、それ以外の場合、接続タイムアウトはサポートされません。
ssh。 結局のところ、信頼できる方法はありません PDSH リモート コマンドが確実に実行されるようにするため、
コマンドタイムアウトを使用すると実際に終了します。 したがって、もし -u と一緒に使用されます ssh コマンドは可能性があります
タイムアウトでローカルが終了した後でも、リモート ホスト上で実行されたままになる ssh プロセス。

qshell または mqshell を使用すると、ノードごとの複数のプロセスからの出力が散在する可能性があります
rcmd モジュール。

ノードの数 PDSH リモート ジョブを同時に実行できるのは、
同時に作成できるスレッドの最大数と、
rsh および qshell rcmd モジュールの予約済みポート。 Posix を実装するシステムの場合
スレッドの場合、制限は通常、定数 PTHREADS_THREADS_MAX によって定義されます。

onworks.net サービスを使用してオンラインで pdsh を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad