我试图在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
标志将生成一个日志,其中包含当前目录中所需的所有内容。
问候,