2016-04-11 10 views
0

nc経由でサーバーとの通信を開始するbashスクリプトで、サーバー・モードで稼動するソフトウェアのログ出力をlocalhostにキャプチャーしようとしています。ローカルbashスクリプトでサーバー端末の出力をキャプチャーします

サーバーは次のように開始されます。bashスクリプトから

java -Xms4g -Xmx6g -jar target/Semafor-3.0-alpha-04.jar model-dir:../semafor_malt_model_20121129 port:4444

通信は次のとおりです。うまくncの場合と同様に

cat file | nc localhost 4444 > ./output 

これはSTDERR出力をキャプチャします。

しかし、私はサーバを起動したターミナルウィンドウでたくさんのログメッセージをスクロールすることができます。私の質問は、これらのメッセージをbashスクリプトでキャプチャする方法です(特定のファイル名file.log 、送信されるファイルごとに異なるでしょうか?)

私は、変数

var=$(cat file | nc localhost 4444 > ./output) 

でbashコマンドの出力をキャプチャしたり、scriptでなく、任意の成功なしの端末出力をキャプチャしようとしているような、様々な提案を試みました。私はここで私の深さからはっきりとわかりました。そして、どんな指針も喜んで受け取ります。

答えて

0

私はあなたがscreenを使用できると思う:

screen -S session_name -L -X eval 'java...' 

-Lフラグを使用すると、カレントディレクトリに必要なすべてのもののログを生成します。

よろしく、提案のための

+0

感謝。画面は私にとっては新しく、javaとpathのコンポーネントが見つからないというエラーが出ているようです。今夜は適切な時間を過ごすでしょうし、もっと関連性の高い質問があるかもしれません。 – Alexander

+0

申し訳ありませんが、私はこれを動作させるのに苦労しています。すべてのクラスパスと他のパス情報は、画面を使用すると失われるようですが、その周りの方法はありますか?相対パスを絶対パスで置き換えようとしましたが、ENV変数で定義されているものもあります。何か案は? – Alexander

+0

この問題を解決するにはいくつかの方法がありますが、最も簡単な方法はsetenvコマンドを使用することです。詳細はこちら[http://unix.stackexchange.com/questions/157202/how-to-set- screen-environment-variable-from-bash)を実行します。 – aalf1987

関連する問題