¿Cómo enviar una salida del comando unix de un servidor a otro servidor?

Respuestas:

20

General, siempre puedes hacer:

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

Se ahorra salida <command>de output.txtarchivo en el servidor remoto.

En su caso, en el Servidor-1:

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

Si dos servidores no tienen conectividad, pero puede enviar ssh a ambos servidores, entonces desde la máquina local, puede hacer:

ssh user@Server-1 "<command>" | ssh user@Server-2 "cat > output.txt"
Cuonglm
fuente
Lo intenté y recibo un error de conexión de tiempo de espera. Creo que no hay conectividad entre dos servidores. ¿Hay alguna otra forma?
vinod
1
@vinod: es el problema de conectividad de dos servidores, no puede hacerlo si dos servidores no tienen conectividad. Asegúrese de que puede enviar ssh del Servidor-1 al Servidor-2. ¿Puedes ssh desde la máquina local a ambos servidores?
Cuonglm
sí ... puedo enviar ambos servidores por separado de la máquina local
vinod
6

Tu puedes correr:

ssh remote_server "command" > file_on_local_host.txt

o use la salida como entrada para el comando local:

ssh remote_server "remote_command" | local_command

Ruslan Gerasimov
fuente
1

Como no puede conectarse directamente del servidor 1 al servidor 2, puede usar esto, teniendo su máquina local en el medio:

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