Executando várias operações em um comando SSH

1

Eu tenho um comando,

# ssh -t computer.A 'command'

para executar um comando simples no computador. Remotamente por SSH.

Para adicionar isso, eu quero executar um comando no computador.B através do computador. Na minha cabeça ficaria assim:

# ssh -t computer.A 'ssh -t computer.B 'shutdown -p now' shutdown -p now'

Este comando deve primeiro desligar o computer.B e depois o computer.A, mas apenas encerra o computer.B e ignora o comando para desligar o computador.A.

O que está errado?

    
por Kellyson 07.02.2018 / 22:22

2 respostas

1

Você precisaria escapar de suas citações e separar os dois comandos um do outro.

ssh -t computer.A 'ssh -t computer.B \'shutdown -p now\'; shutdown -p now'

Se você quisesse o segundo desligamento no computador. Apenas para executar se o primeiro foi bem-sucedido, substitua o ; por && .

Você também pode alternar as citações da seguinte forma:

ssh -t computer.A 'ssh -t computer.B "shutdown -p now"; shutdown -p now'
    
por 07.02.2018 / 22:36
0

Imagine estar no computador A. Você deseja desligar o computador B. Como você faz isso?

Você digita

ssh -t computer.B 'shutdown -p now'

Agora você quer executar o comando ("ssh -t computer.B ...") no seu computador. Você precisa citar, mas no comando já existem duas citações, então você precisa escapar delas:

ssh -t computer.A 'ssh -t computer.B \'shutdown -p now\''

e, na verdade, você quer executar dois comandos, então você precisa adicioná-lo dentro das aspas externas:

ssh -t computer.A 'ssh -t computer.B \'shutdown -p now\'; shutdown -p now'

Se você quiser iterar isso conectando-se ao seu computador externamente, basta enxaguar e repetir:

  • primeiro estágio, escape de todas as citações e todas as barras , então \ se torna \ e ' se torna \' . O que significa que \' se torna \\' :

    ssh -t computer.A \'ssh -t computer.B \\'shutdown -p now\\'; shutdown -p now\'
    
  • segundo estágio: coloque entre aspas, adicione o comando shutdown e preencha a instrução ssh:

    ssh -t mycomputer 'ssh -t computer.A \'ssh -t computer.B \\'shutdown -p now\\'; shutdown -p now\'; shutdown -p now'
    
por 07.02.2018 / 23:56