Como eu salvo a saída do comando para o sistema local quando SSHed para um sistema remoto?

0

Então, eu estou tentando criar um sistema de perguntar lá um computador (, vamos chamá-lo de computador nr1), pergunta a um outro computador (computador nr2). A resposta será respondida através de um documento de texto no computador nr1. A pergunta que a pergunta nr1 pode fazer não importa realmente, mas digamos que nr1 pergunte quando a última reinicialização foi nr2.

Estou usando o ssh para fazer a pergunta, mas não funciona. Estou sshing nr1 para nr2 e, em seguida, por exemplo, perguntando quando foi reiniciado pela última vez por:

who -b | awk '{print $(NF-1)" "$NF}' >> existing_file_in_nr1.txt

Mas quando eu executo o comando, ele coloca a resposta no computador nr2. O que eu faço se eu quiser que minha resposta vá para o computador nr1 em vez do computador nr2 quando sshed de nr1 para nr2?

Obrigado.

    
por Ludvig 07.11.2017 / 10:42

2 respostas

3

Execute a pergunta por SSH, mas capture a resposta fora do SSH.

No nr1:

ssh user@nr2 'who -b' | awk '{print $(NF-1)" "$NF}' >> existing_file_in_nr1.txt

    
por HellionWisp 07.11.2017 / 11:16
2

Em vez de usar o SSHing e executar o comando no shell iniciado por SSH, use o SSH para executar o comando diretamente. Então o redirecionamento acontecerá no sistema local. De nr1:

ssh nr2 who -b | awk '{print $(NF-1)" "$NF}' >> existing_file_in_nr1.txt

Nesse caso, apenas who -b é executado em nr2. Tudo o resto acontece no nr1.

Embora já esteja no nr2, não há muito o que fazer para afetar o nr1. Você pode SSH voltar para o nr1, ou algo similar, mas é só isso.

    
por muru 07.11.2017 / 11:08