Pergunta

Eu quero executar algum comando em várias máquina usando ssh. Eu sei que isso pode ser feito apenas usando o comando "ssh user@hostname comando". No entanto, o comando que eu quero executar imprimir alguma string no console. Existe alguma maneira de enviar todas as cordas de volta ao console em que estou?

Foi útil?

Solução

Você pode executar os comandos em um tela:

screen -S test
ssh user@hostname command1
ssh user@hostname2 command2

Em seguida, você pode se destacar (Ctrl-D) da tela, que ele seja executado por tempo que será executado e, em seguida, reajuste (teste -R-R) para a tela e ver toda a saída. Isso pressupõe que você não terá uma tonelada de saída dos comandos, no entanto. Aqui está um link para um tutorial na tela.

Outras dicas

 ssh user@hostname command 

Faz exatamente isso. Se o 'comando' produzir alguma coisa, ele será exibido no terminal da qual você executou SSH. Tente por exemplo, usuário ssh@hostName ls -l

Mas, como outros disseram, a tela GNU é inestimável para esse tipo de trabalho.

Você provavelmente quer usar Tela GNU por esta. Você pode iniciar um processo em um terminal "virtual", "desapegar" o terminal e fazer o login por tempo que quiser ... então você pode voltar a SSH e novamente atingir o terminal para ver a saída do console.

Também dê uma olhada em nohup, por exemplo:

ssh user@domain.com nohup script_that_outputs_strings.py > the_strings.txt

Então, se você quiser voltar e monitorar o progresso, poderá verificar e tail o arquivo ou scp a saída de volta à sua máquina local.

Por que você não envia um e -mail de volta? Ou use um arquivo de log e SCP no seu computador atual? Caso contrário, eu não sei!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top