リモートシェルから出力を取得する方法

リモートシェルから出力を取得する方法

コマンドラインで実行されているサーバーで実行されるアプリケーションがあります。時にはSSHを介してサーバーに接続し、アプリケーションからstdoutに書き込まれた出力メッセージを受け取る必要があります。その端末でメッセージを読み取り/スニッフィング/キャプチャする方法はありますか?サーバーはFedora 12を実行しています。

もう一度確認するため。サーバーへの管理者アクセス権がありますが、実行中のアプリケーションが重要な環境にあるため停止できません。エンドユーザーは端末でアプリケーションを実行します。 SSHを介してユーザーが奇妙な動作を見るたびに、端末からメッセージを読む必要があります。グラフィックアプリケーションです。 screen を使用してアプリケーションを実行するスクリプトを作成することもできます。つまり、「ランチャー」を変更する必要がありますが、一部のサーバーはセキュリティ上の理由からLANの外部から常にアクセスすることはできません。更新が複雑です。私の質問は、実行中のアプリケーションがある場合はアプリケーションを停止し、画面がオフになってから再実行せずに端末から出力をキャプチャする方法はありますか?

ベストアンサー1

確実な解決策は、アプリケーションの出力をファイルにリダイレクトしてからそのファイルを表示することです。

nohup application >app.log &  # on the server
ssh server tail -n +1 -f app.log   # on the client

アプリケーションを端末に出力する必要がある場合は、次の場所で実行してください。画面

サーバーから:
screen -S somename -Rrd
application
Ctrl+をA D押してスクリーンセッションで「分離」し、バックグラウンドで実行するようにします。

お客様から:
ssh server
screen -S somename -Rrd スクリーンセッションに再接続

メッセージを自動的に録音するための最良の方法は、次を使用することです。標準ロギング施設。おおよその最も基本的なsyslogを使用するか、より良いフィルタリングとスケジュールオプションを使用して、ログエントリが別のコンピュータに転送されるようにスケジュールすることができます。システムログ

おすすめ記事