多くのサーバーでSSHを介したコマンド実行の自動化

多くのサーバーでSSHを介したコマンド実行の自動化

.txt ファイルには IP アドレスのリストがあります。例:

1.1.1.1
2.2.2.2
3.3.3.3

各IPアドレスの後にはサーバーがあり、各サーバーのポート22で実行されるSSHDがあります。すべてのサーバーがリストにあるわけではありませんknown_hosts(私のPCではUbuntu 10.04 LTS / bash)。

これらのサーバーでコマンドを実行して出力を収集するにはどうすればよいですか?

理想的には、すべてのサーバーでコマンドを並列に実行したいと思います。

すべてのサーバーで公開鍵認証を使用します。

以下はいくつかの潜在的な落とし穴です。

  • ssh は、指定されたサーバー SSH キーを自分のknown_hostsファイルに入れるように求めます。
  • 指定されたコマンドは、出力が無効である可能性があることを示すゼロ以外の終了コードを返すことがあります。私はこれを実現しなければならない。
  • たとえば、ネットワーク障害により特定のサーバーへの接続が確立されない場合があります。
  • コマンドの実行に予想以上に時間がかかる場合、またはコマンドの実行中にサーバーにエラーが発生した場合は、タイムアウトが必要です。

サーバーはAIX / kshです(しかしそれは重要ではないと思います)。

ベストアンサー1

複数のコンピュータに同時にログインし、複数のコンピュータで一連のコマンドを実行できるツールがいくつかあります。以下はいくつかあります。

おすすめ記事