ssh execução remota de múltiplos arquivos

2

Eu tenho dois arquivos locais , um config.sh que contém definições de variáveis, outro script.sh que contém um script bash.

Localmente, posso fazer:

source config.sh; bash script.sh

Eu estou procurando a mesma coisa via ssh, até agora eu tenho esse trabalho:

ssh user@host 'bash -s' < script.sh

Mas não tenho certeza se devo usar cat ou alguns pipes de entrada <(...) para obter tanto config.sh & script.sh para ser executado.

Qual seria a melhor maneira de executar vários comandos que exigem algum conteúdo para ser enviado com o ssh?

    
por Olivier 09.04.2013 / 15:30

2 respostas

1

Supondo que ambos os scripts estejam no host local, não no host remoto:

cat config.sh script.sh | ssh -T remote_host bash

Você pode querer usar o sinalizador '-t' se, em vez disso, desejar forçar a alocação do pseudo-TTY no terminal remoto. O processo SSH local não terá um, já que o stdin é de um pipe. Você só precisa adicionar a string " bash " ao final da linha de comando se não for o shell padrão na extremidade remota. Além disso, observe que seu código original não funcionaria, a menos que suas "definições de variável" exportem as variáveis de ambiente em questão.

    
por 09.04.2013 / 17:35
0

Use EXPECT para executar seus scripts a partir de sua máquina remota, assim seus scripts são executados como se estivessem em sua máquina local. Aqui está uma breve demonstração de como usar o EXPECT.

link

    
por 09.04.2013 / 16:30

Tags