OpenSSH : Parallel SSH を利用する2025/10/15 |
|
PDSH (Parallel Distributed Shell) を使用して、SSH サーバーが稼働する複数ホストに対して並列で SSH 接続します。 |
|
| [1] | PDSH をインストールします。 |
|
dlp:~ # zypper -n install pdsh pdsh-dshgroup
|
| [2] | PDSH の使い方です。 各対象サーバーに対して、パスフレーズ無し鍵ペアで認証可能であることを前提とします。 パスフレーズ付き鍵ペア認証の場合は 事前に SSH-Agent を起動してパスフレーズをセットしておけば、以下と同様の操作で利用可能です。 |
|
# 指定のホストに対して SSH 接続し hostname コマンドを実行 suse@dlp:~> pdsh -w "10.0.0.51 10.0.0.52" "hostname" 10.0.0.52: node02.srv.world 10.0.0.51: node01.srv.world # 初回アクセス時等でのホストキーチェックをスキップする場合は以下 suse@dlp:~> PDSH_SSH_ARGS_APPEND="-o StrictHostKeyChecking=no" pdsh -w "10.0.0.51 10.0.0.52" "uptime" 10.0.0.52: Warning: Permanently added '10.0.0.52' (ED25519) to the list of known hosts. 10.0.0.51: Warning: Permanently added '10.0.0.51' (ED25519) to the list of known hosts. 10.0.0.51: 11:44:24 up 1:55, 2 users, load average: 0.03, 0.01, 0.00 10.0.0.52: 11:44:24 up 0:11, 2 users, load average: 0.02, 0.02, 0.00 # パッケージ付属の [dshbak] に渡すと表示結果を整形 suse@dlp:~> pdsh -w "10.0.0.51 10.0.0.52" "uptime" | dshbak ---------------- 10.0.0.51 ---------------- 12:43:21 up 2:54, 2 users, load average: 0.06, 0.02, 0.00 ---------------- 10.0.0.52 ---------------- 12:43:21 up 1:10, 2 users, load average: 0.00, 0.00, 0.00
# 接続先ホストを 1 行ごとに記述
10.0.0.51
10.0.0.52
pdsh -g nodes "uptime" 10.0.0.52: 11:52:43 up 0:19, 2 users, load average: 0.04, 0.01, 0.00 10.0.0.51: 11:52:43 up 2:04, 2 users, load average: 0.02, 0.01, 0.00 |
| [3] |
なお、PDSH パッケージには pdsh コマンド以外にも、pdcp, rpdcp も含まれており、
[pdsh option ~] の部分はいずれも pdsh と同様の書式で利用可能です。
|
| Sponsored Link |
|
|