2016-04-11 2 views
0

Я пытаюсь захватить вывод журнала части программного обеспечения, работающего в режиме сервера, на localhost в сценарии bash, который запускает связь с сервером через nc.Захват вывода терминала сервера в локальном сценарии bash

Сервер запускается так:

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

Сообщение от сценария Баш:

cat file | nc localhost 4444 > ./output 

Это захватывает STDERR выход, как в случае с nc славно.

Но я могу видеть много сообщений журнала, прокручивающихся в окне терминала, где я запустил сервер, и мой вопрос заключается в том, как я могу захватить эти сообщения в сценарии bash (и, таким образом, сохранить их под определенным именем файла file.log , которые будут отличаться для каждого отправленного файла)?

Я пробовал различные предложения, как захватить вывод команды Баш в переменной

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

или даже пытается захватить вывод на терминал с 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- экран-среда-переменная из-Баша). – aalf1987

Смежные вопросы