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 コマンドを使用するUbuntuやLinux 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 に関する追加情報や、インストール中または使用中のエラーがある場合は、お気軽にコメントを投稿してください。