Wie sende ich eine Ausgabe des Unix-Befehls von einem Server an einen anderen Server?

10

So leiten Sie die Ausgabe eines Unix-Befehls von einem Server auf einen anderen Server um.

Ich sollte in der Lage sein, die Ausgabe des Unix-Befehls von Server-1 zu senden. Dann sollte ich in der Lage sein, die Ausgabe in Server-2 zu empfangen und in eine Datei zu schreiben.

Vinod
quelle
Siehe auch
Anton Tarasenko

Antworten:

20

Allgemein können Sie immer tun:

<command> | ssh user@remote-server "cat > output.txt"

Es spart Ausgang <command>auf output.txtDatei in Remote - Server.

In Ihrem Fall auf Server-1:

echo "qwerty" | ssh user@Server-2 "cat > output.txt"

Wenn zwei Server keine Konnektivität haben, Sie aber mit beiden Servern ssh können, können Sie vom lokalen Computer aus Folgendes tun:

ssh user@Server-1 "<command>" | ssh user@Server-2 "cat > output.txt"
cuonglm
quelle
Ich habe es versucht und bekomme eine Zeitüberschreitung. Verbindungsfehler. Ich glaube, es gibt keine Verbindung zwischen zwei Servern. Gibt es einen anderen Weg?
Vinod
1
@vinod: Es ist das Konnektivitätsproblem von zwei Servern. Sie können dies nicht tun, wenn zwei Server keine Konnektivität haben. Stellen Sie sicher, dass Sie von Server-1 zu Server-2 ssh können. Können Sie vom lokalen Computer zu beiden Servern ssh?
Cuonglm
ja ... ich kann beide Server getrennt von der lokalen Maschine ssh
vinod
6

Du kannst rennen:

ssh remote_server "command" > file_on_local_host.txt

oder verwenden Sie die Ausgabe als Eingabe für den lokalen Befehl:

ssh remote_server "remote_command" | local_command

Ruslan Gerasimov
quelle
1

Da Sie keine direkte Verbindung von Server 1 zu Server 2 herstellen können, können Sie dies verwenden, wobei sich Ihr lokaler Computer in der Mitte befindet:

ssh server1 command | ssh server2 "cat > output.txt"
pqnet
quelle