Como executar o shell script local no servidor remoto via SSH?


Respostas:


16
ssh user@remotehost "bash -s" < local_script.sh

-s faz bash ler a partir da entrada padrão.

Se você precisar passar argumentos para o seu script:

ssh user@remotehost "bash -s" -- < local_script.sh "your_arg" "--aswitch" "avalue"

Observe o traço duplo --(significando o final das opções de comando) e as aspas em torno dos argumentos.


Vou ter que lembrar disso. Informe-nos se isso funcionou para você e não se esqueça de marcar a resposta como aceita.
Argusvision

3
Você não precisa -se só precisa bashse realmente deseja forçar o uso bash. Normalmente você pode simplesmentessh user@remotehost < local_script.sh
janos

11
e se o script local tiver operandos?
kmassada

Eu tenho um script que precisa de argumentos, por exemplo, "sh setup.sh arg1 arg2 arg3" como executá-lo
Amarjit Singh

4

resposta phoibos é o trabalho para mim.

ssh user@remotehost "bash -s" < local_script.sh

Mas você deve ter certeza de que seu script chama explicitamente exit ou permanecerá conectado ao servidor remoto após a execução do script.

Para ser breve, não se esqueça de colocar isso no final de local_script.sh:

exit 0
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.