ウェブサイト検索

PSSH - 複数のリモート Linux システム上でコマンドを実行する


OpenSSH が Linux で利用できる最も広く使用されている強力なツールの 1 つであることは間違いありません。OpenSSH を使用すると、シェル経由でリモート Linux システムに安全に接続し、リモート システムとの間でファイルを安全に転送できます。

しかし、OpenSSH の最大の欠点は、複数のホストで同じコマンドを一度に実行できないことと、OpenSSH がそのようなタスクを実行するように開発されていないことです。

ここで並列 SSH または PSSH ツールが役に立ちます。このツールは Python ベースのアプリケーションであり、複数のホストで同時にコマンドを並列実行できます。

PSSH ツールには、OpenSSH の並列バージョンと次のような関連ツールが含まれています。

  • pssh – 複数のリモート ホストで ssh を並行して実行するためのプログラムです。
  • pscp – 多数のホストに並行してファイルをコピーするためのプログラムです。
  • prsync – 複数のホストに並行してファイルを効率的にコピーするプログラムです。
  • pnuke – 複数のリモート ホスト上のプロセスを並行して強制終了します。
  • pslurp – 複数のリモート ホストから中央ホストにファイルを並行してコピーします。

これらのツールは、ネットワーク上の大規模なノードのコレクションを操作するシステム管理者に適しています。

Linux に PSSH またはパラレル SSH をインストールする

このガイドでは、Fedora や CentOS Stream などの RHEL ベースのディストリビューションに PSSH (バージョン 2.3.1 など) プログラムの最新バージョンをインストールする手順を説明します。 、Rocky および AlmaLinux、および pip コマンドを使用するUbuntuLinux Mintなどの Debian ベースのディストリビューション。

pip コマンドは、Python ソフトウェア パッケージ インデックスをインストールおよび管理するための小さなプログラム (easy_install スクリプトの置き換え) です。

RHEL ベースのディストリビューションについて

RHEL ディストリビューションでは、PSSH をインストールするには、まずシステムに pip パッケージ (つまり、python-pip) をインストールする必要があります。 yum または dnf を使用したプログラム。

yum install python-pip
OR
dnf install python-pip

pip ツールをインストールしたら、次に示すように pip コマンドを使用して pssh パッケージをインストールできます。

pip install pssh  

Debian ベースのディストリビューションについて

Debian ベースのディストリビューションでは、pip コマンドを使用して pssh をインストールするのに 1 分かかります。

sudo apt install python-pip
sudo pip install pssh

Linux で pssh を使用するにはどうすればよいですか?

pssh を使用する場合は、pssh を使用してリモート システムに接続するために必要なホストの数、IP アドレスおよびポート番号を含むホスト ファイルを作成する必要があります。

ホスト ファイル内の行は次の形式であり、空白行やコメントを含めることもできます。

192.168.0.10:22
192.168.0.11:22

複数の Linux サーバーで 1 つのコマンドを実行する

pssh コマンドを実行すると、ネットワーク上の異なるまたは複数の Linux ホストで単一のコマンドを実行できます。以下で説明するように、pssh で使用するオプションは多数あります。

さまざまなオプションを指定してpssh を使用して、多数のホストでコマンドを実行するいくつかの方法を見ていきます。

  • ホスト ファイルを読み取るには、-h host_file-name または --hosts host_file_name オプションを含めます。
  • 特定のユーザーを定義していないすべてのホストにデフォルトのユーザー名を含めるには、-l username または --user username オプションを使用します。
  • 各ホストの完了時に標準出力と標準エラーを表示することもできます。 -i または --inline オプションを使用します。
  • -tnumber_of_秒オプションを含めることにより、指定した秒数の後に接続がタイムアウトになるようにすることもできます。
  • 標準出力を特定のディレクトリに保存するには、 -o /directory/path オプションを使用できます。
  • パスワードを要求して SSH に送信するには、-A オプションを使用します。

pssh コマンドの例と使用法をいくつか見てみましょう。

複数の Linux ホストでコマンドを実行する

1. root ユーザーが複数の Linux ホストの端末で echo “Hello TecMint ” を実行し、root ユーザーのパスワードの入力を求めるには、以下のコマンドを実行します。

重要: すべてのホストをホスト ファイルに含める必要があることに注意してください。

pssh -h pssh-hosts -l root -A echo "Hello TecMint"

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 15:54:55 [SUCCESS] 192.168.0.10:22
[2] 15:54:56 [SUCCESS] 192.168.0.11:22

: 上記のコマンドの「pssh-hosts」は、リモート Linux サーバーの IP アドレスと SSH ポート番号のリストが含まれるファイルです。コマンドを実行したいことを示します。

複数の Linux ホストのディスク使用量を調べる

2. ネットワーク上の複数の Linux サーバーのディスク領域の使用状況を確認するには、次のように 1 つのコマンドを実行します。

pssh -h pssh-hosts -l root -A -i "df -hT"

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 16:04:18 [SUCCESS] 192.168.0.10:22
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/sda3      ext4    38G  4.3G   32G  12% /
tmpfs          tmpfs  499M     0  499M   0% /dev/shm
/dev/sda1      ext4   190M   25M  156M  14% /boot

[2] 16:04:18 [SUCCESS] 192.168.0.11:22
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        30G  9.8G   20G  34% /
devtmpfs                devtmpfs  488M     0  488M   0% /dev
tmpfs                   tmpfs     497M  148K  497M   1% /dev/shm
tmpfs                   tmpfs     497M  7.0M  490M   2% /run
tmpfs                   tmpfs     497M     0  497M   0% /sys/fs/cgroup
/dev/sda1               xfs       497M  166M  332M  34% /boot

複数の Linux ホストの稼働時間を調べる

3. 複数の Linux サーバーの稼働時間を一度に知りたい場合は、次のコマンドを実行できます。

pssh -h pssh-hosts -l root -A -i "uptime"
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 16:09:03 [SUCCESS] 192.168.0.10:22
 16:09:01 up  1:00,  2 users,  load average: 0.07, 0.02, 0.00

[2] 16:09:03 [SUCCESS] 192.168.0.11:22
 06:39:03 up  1:00,  2 users,  load average: 0.00, 0.06, 0.09

pssh コマンドの手動入力ページを表示して、他の多くのオプションを取得し、pssh のその他の使用方法を調べることができます。

pssh --help

まとめ

パラレル SSH または PSSH は、システム管理者がネットワーク上の多数のサーバーを操作する必要がある環境でコマンドを実行するために使用するのに適したツールです。 。これにより、ネットワーク上の異なるホスト上でコマンドをリモートで実行することが容易になります。

このガイドがお役に立てば幸いです。pssh に関する追加情報や、インストール中または使用中のエラーがある場合は、お気軽にコメントを投稿してください。