Como enviar uma saída do comando unix de um servidor para outro servidor?

10

Como redirecionar a saída de um comando unix de um servidor para outro.

Eu deveria poder enviar a saída do comando unix do server-1. Então eu devo conseguir a saída no Servidor-2 e gravá-la em um arquivo.

vinod
fonte
Relacionados: unix.stackexchange.com/questions/34273/...
Anton Tarasenko

Respostas:

20

Geral, você sempre pode:

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

Ele salva a saída de <command>ao output.txtarquivo no servidor remoto.

No seu caso, no Servidor 1:

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

Se dois servidores não tiverem conectividade, mas você puder ssh para os dois servidores, na máquina local, poderá:

ssh user@Server-1 "<command>" | ssh user@Server-2 "cat > output.txt"
cuonglm
fonte
Eu tentei e estou ficando com tempo limite de erro de conexão .. Acho que não há conectividade entre dois servidores .. Existe alguma outra maneira?
Vinod #
1
@vinod: É o problema de conectividade de dois servidores, você não pode fazer isso se dois servidores não tiverem conectividade. Certifique-se de poder ssh do Servidor 1 para o Servidor 2. Você pode ssh da máquina local para os dois servidores?
cuonglm
sim ... Eu posso ssh ambos os servidores separadamente da máquina local
vinod
6

Você pode correr:

ssh remote_server "command" > file_on_local_host.txt

ou use a saída como uma entrada para o comando local:

ssh remote_server "remote_command" | local_command

Ruslan Gerasimov
fonte
1

Como você não pode se conectar diretamente do servidor 1 ao servidor 2, você pode usá-lo, mantendo sua máquina local no meio:

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