複数のサーバーで実行されるシェルスクリプト

複数のサーバーで実行されるシェルスクリプト

あるサーバーでksh / shスクリプトの一部を実行し、別のサーバーでsshを実行して残りのスクリプトを続行できますか?それとも解決策がありますか?

サーバーにアクセスするたびに認証する必要がないユーザーがいるため、キーボード操作なしであるサーバーから別のサーバーに移動できます。

私はいくつかのロジックを別のスクリプトに分割しようとしました。

MYSCRIPT="nohup ksh myscript.ksh > mylog.log &"
ssh servername ${MYSCRIPT}

これを試しましたが、他のサーバーでスクリプトを実行していないようです。

上記のコード全体はforループの一部です。サーバーリストに対して同じスクリプトを実行します。

テスト目的で、リストには2つのサーバーがあります。奇妙で歪んだ理由で、最後の(または2番目の)サーバースクリプトだけが期待どおりに機能します。

Myscript.kshはすべてのサーバーに表示されます。すべてのサーバーに表示され、実行可能です。

ベストアンサー1

何度もログインせずに他のサーバーで一連のコマンドを実行したいようです。これを達成するには、次のようにします。

local_command sequence
ssh remote-server << End-Of-File
        remote_command 1
        remote_command 2
        remote_command 3
End-Of-File

これが実行され、remote_command 1完了すると実行されますremote_command 2。これremote_command 3はすべてリモートサーバーに保存されます。

おすすめ記事