4

bashを使用してシェルスクリプトを作成しようとしています。複数のサーバーがあり、各サーバーで複数のアプリが実行されています。各サーバーには、チェック/停止/開始などを行うための特定のアプリスクリプトもあります。私がやりたいのは、sshを実行して、リモートサーバーに接続することだけです。私も成功してコマンドを実行することができます。

場合によっては、リモートマシンのプロセスステータスを確認する必要がありますが、アプリ固有のスクリプトはすでにそれを行っています。しかし、そのスクリプトを実行しようとしたときにsshを使用すると、情報が得られません(実行されますが、情報は渡されません)。リモートホストから情報を取得し、ここでローカルホストに表示するにはどうすればよいですか。

これに関するどんな助けも本当にありがたいです。

よろしく、セニー

4

1 に答える 1

7

コマンドを文字列としてsshに渡すことにより、リモートコマンドを実行してローカルで結果を取得できます。

スクリプトでは、次のことができます。

CMD_OUT=$(ssh user@remote_host "/path/to/script argument")

コマンドはリモートで実行され、出力は変数に格納されCMD_OUTます。次に、スクリプトの出力を解析して、必要な結果を得ることができます。

スクリプトの使用を簡素化するために、パスワードなしのsshを設定して、スクリプトがリモートコマンドを実行しようとするたびにパスワードを入力する必要がないようにすることができます。

于 2011-02-03T11:20:33.200 に答える