Ich versuche, die Protokollausgabe von einer Software im Servermodus auf localhost
in der Bash-Skript erfassen, die die Kommunikation mit dem Server über nc
auslöst.Capture-Server-Terminal-Ausgabe in lokalen Bash-Skript
Der Server wird wie folgt gestartet:
java -Xms4g -Xmx6g -jar target/Semafor-3.0-alpha-04.jar model-dir:../semafor_malt_model_20121129 port:4444
Die Mitteilung des Bash-Skript ist:
cat file | nc localhost 4444 > ./output
Dies fängt den STDERR
Ausgang wie bei nc
schön ist.
Aber ich kann viele Log-Nachrichten im Terminal-Fenster scrollen, wo ich den Server gestartet habe, und meine Frage ist, wie ich diese Nachrichten im Bash-Skript erfassen kann (und sie so unter einem bestimmten Dateinamen file.log speichern) , was würde für jede Datei anders sein)?
Ich habe verschiedene Vorschläge versucht, wie die Ausgabe von dem in einer Variablen bash Befehl Erfassung
var=$(cat file | nc localhost 4444 > ./output)
oder sogar versuchen, die Terminal-Ausgabe mit script
aber ohne Erfolg zu erfassen. Ich bin hier eindeutig von meiner Tiefe entfernt, und alle Hinweise würden dankbar empfangen werden.
Danke für den Vorschlag. Der Bildschirm ist neu für mich und ich scheine Fehler zu finden, wenn Java und Pfadkomponenten nicht gefunden werden. Werde heute Abend richtig loslegen und dann vielleicht relevantere Fragen haben. – Alexander
Tut mir leid, ich habe Probleme damit zu arbeiten. Alle Klassenpfad- und andere Pfadinformationen scheinen bei der Verwendung des Bildschirms verloren zu gehen. Gibt es einen Weg um dies zu umgehen? Ich habe versucht, relative durch absolute Pfade zu ersetzen, aber einige sind in ENV-Variablen definiert, die ich nicht leicht ändern kann. Irgendwelche Ideen? – Alexander
Es gibt mehrere Möglichkeiten, dieses Problem zu lösen, aber der einfachste Weg ist die Verwendung des Befehls setenv. Weitere Informationen finden Sie [hier] (http://unix.stackexchange.com/questions/157202/how-to-set- Bildschirm-Umgebungsvariable-von-Bash). – aalf1987