2017-01-12 1 views
0

Ich versuche, einen Befehl auf einem Remote-Computer auszuführen, Grep die Ausgabe, legte es in eine Datei und dann schließen Sie die Verbindung. Diese ist das, was ich habe:SSH an Remote-Maschine, Grep-Ausgang, schließen Verbindung

#!/bin/bash 

sshpass -p ***** ssh [email protected] | grep 'TEXT' > output.txt 

Das Skript ist stoppt und es erfolgt keine Ausgabe in output.txt

Irgendwelche Ideen, wie kann ich dieses Skript?

+2

Wo ist dein Befehl ? Ich sehe nur grep nach pipe –

+0

Der Befehl ist grep, ich möchte nur die Ausgabe nach der SSH-Sitzung grep. Wenn ich mich auf dem Remote-Rechner anmelde, wird die Information, die ich brauche, standardmäßig nach dem Login angezeigt, also mache ich einen Grep auf den Text, den ich möchte, und ich möchte das in eine Textdatei schreiben und die SSH-Verbindung schließen. – bana123

+0

@ bana123, nein, das ist nicht, wie Sie diese Werkzeuge verwenden. Ihr SSH muss einen Befehl ausführen. Die Ausgabe dieses Befehls wird zur Eingabe des Befehls 'grep', wenn Sie eine Pipe verwenden, um sie zu verbinden. Alternativ müssen Sie die Pipe entfernen, wenn Sie die 'grep' auf dem Remote-Rechner ausführen und direkt auf eine (derzeit nicht näher bezeichnete) Eingabedatei schauen möchten. – ghoti

Antwort

0

versuchen Sie dies.

#!/bin/bash 

sshpass -p ***** ssh [email protected] " grep 'TEXT' > output.txt" 

in Ihrem Shell-Skript, die Sie gerade SSH-Login in Ihrem entfernen Server verwenden, und ssh Befehl nach dem Ausführen, dann grep in Sie lokalen Rechner laufen, so erhalten Sie nichts

+0

Ich verstehe nicht, was du meinst. Dein Befehl ist derselbe wie der oben angegebene. – bana123

+0

haben Sie meinen Skript versuchen, vielleicht könnten Sie versuchen, bevor Sie Kommentar posten :) – samray

+0

ich die Folgefehlermeldung erhalten: 'buffer_get_ret: versuchen, mehr Bytes 4 als in Puffer 0 buffer_get_int zu erhalten: error' Puffer – bana123