2016-04-11 43 views
0

Sunucu modunda localhost numaralı sunucuda çalışan bir yazılım parçasının günlük çıktısını, nc aracılığıyla sunucuyla iletişimi tetikleyen bash komut dosyasında yakalamaya çalışıyorum.Yerel bash betiğindeki sunucu terminali çıktısını yakalama

sunucu böyle başlatılır: bash komut dosyasından

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

iletişimdir: güzel nc örneğinde olduğu gibi

cat file | nc localhost 4444 > ./output 

Bu STDERR çıkışını yakalar.

Ancak sunucuyu başlattığım terminal penceresinde dolaşan çok sayıda günlük mesajı görebiliyorum ve sorum şu ki bu iletileri bash komut dosyasında nasıl yakalayabileceğim (ve böylece bunları belirli bir dosya adı file.log altında kaydedebileceğim) , gönderilen her dosya için farklı olurdu)?

Ben değişken

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

yılında bash komutunun çıktısını yakalayan hatta script ile fakat başarılı terminali çıkış yakalamak için çalışıyor gibi çeşitli önerilerde denedim. Açıkçası burada derinlikten çıkıyorum ve herhangi bir işaretçi minnetle alınacaktı.

cevap

0

Sana screen kullanabilirsiniz düşünüyorum:

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

-L bayrak geçerli dizinde gerektiren tüm şeylerle bir günlük oluşturur.

Saygılarımızla,

+0

Öneriniz için teşekkürler. Ekran benim için yeni ve java ve yol bileşenleri bulunamadı hataları ile ilgili çalışıyor gibi görünüyor. Bu gece düzgün bir şekilde gidecek ve o zaman daha alakalı sorular olabilir. – Alexander

+0

Üzgünüm, bunu işe almak için uğraşıyorum. Ekranı kullanırken tüm sınıf yolu ve diğer yol bilgileri kaybolur gibi görünüyor, bunun bir yolu var mı? Akrabayı mutlak yollarla değiştirmeyi denedim, ancak bazıları değişemediğim ENV değişkenlerinde tanımlanmışlardır. Herhangi bir fikir? – Alexander

+0

Bu sorunu çözmenin birkaç yolu vardır, ancak en kolay yol setenv komutunu kullanmaktır, daha fazla bilgi bulabilirsiniz [burada] (http://unix.stackexchange.com/questions/157202/how-to-set- ekran-çevre değişken den-bash). – aalf1987