在本地bash脚本中捕获服务器终端输出



我试图在bash脚本中捕获一个在localhost上以服务器模式运行的软件的日志输出,该脚本通过nc触发与服务器的通信。

服务器的启动方式如下:

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

bash脚本的通信是:

cat file | nc localhost 4444 > ./output

这很好地捕获了STDERR的输出,就像nc的情况一样。

但是,我可以在启动服务器的终端窗口中看到很多日志消息滚动,我的问题是如何在bash脚本中捕获这些消息(从而将它们保存在特定的文件名file.log下,每个发送的文件都不同)?

我尝试了各种建议,比如在变量中捕获bash命令的输出

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

或者甚至尝试用CCD_ 6捕获终端输出但没有任何成功。我在这里显然超出了我的能力范围,如果有任何建议,我们将不胜感激。

我认为您可以使用screen:

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

-L标志将生成一个日志,其中包含当前目录中所需的所有内容。

问候,

最新更新