Wie kann ich die Ausgabe eines Programms anzeigen, das mit einem SSH-Befehl in Linux gestartet wurde?

445
pv93

Ich kann ansible ausführen, um Programme remote zu installieren und auszuführen. Ansible verwendet SSH zur Ausgabe von Befehlen und zum Ausführen von Modulen auf Remote-Systemen. Einer dieser Befehle besteht darin, eine JAR-Datei auszuführen, die nach der Ausführung eine Textaufforderung ausgibt. Wie kann ich diese Ausgabe anzeigen? Ich kann sehen, dass der von ansible ausgegebene Befehl zu einem laufenden Prozess geführt hat. Daher weiß ich, dass die JAR-Datei erfolgreich gestartet wurde. Ich habe jedoch keine Möglichkeit, die Ausgabe anzuzeigen.

1
ansible verwendet paramiko, vielleicht könnten Sie versuchen, etwas mit dieser lib in Python zu tun. Francisco Tapia vor 8 Jahren 0
Kannst du `ssh 'überlisten? Ich weiß nicht ansible, also nehmen Sie einfach an, ssh zu haben, und Sie interessieren sich für die Ausgabe des Befehls `command1`. Dann versuchen Sie `ssh -t me @ remote bash -c 'command1; command1 ' MariusMatutiae vor 8 Jahren 0

1 Antwort auf die Frage

0
slm

Sie müssen die Ausgabe über die java somefile.jarAusgabe "registrieren", indem Sie entweder das Modul commandoder verwenden shell.

- name: print to stdout command: java somefile.jar register: java  - debug: msg="{{ java.stdout }}"  - debug: msg="{{ java.stderr }}"