Я пытаюсь захватить вывод журнала части программного обеспечения, работающего в режиме сервера, на 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
, но без какого-либо успеха. Я явно не в своей глубине, и любые указатели будут с благодарностью восприняты.
Спасибо за предложение. Экран является новым для меня, и я, кажется, сталкиваюсь с ошибками в отношении того, что компоненты java и path не найдены. Сегодня у него будет подходящее решение, и тогда у него могут возникнуть более актуальные вопросы. – Alexander
Извините, я изо всех сил пытаюсь заставить это работать. Вся информация о путях и другой информации о пути, кажется, теряется при использовании экрана, есть ли способ обойти это? Я попытался заменить относительные абсолютные пути, но некоторые из них определены в переменных ENV, которые я не могу легко изменить. Есть идеи? – Alexander
Существует несколько способов решить эту проблему, но самый простой способ - использовать команду setenv, вы можете найти дополнительную информацию [здесь] (http://unix.stackexchange.com/questions/157202/how-to-set- экран-среда-переменная из-Баша). – aalf1987