.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です(しかし、私はそれは本当に重要ではないと思います。