¿Cómo ejecutar un script de shell local en un servidor remoto a través de SSH?


Respuestas:


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

-s hace que bash lea desde la entrada estándar.

Si necesita pasar argumentos a su script:

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

Tenga en cuenta el guión doble --(que significa el final de las opciones de comando) y las comillas alrededor de los argumentos.


Tendré que recordar eso. Háganos saber si eso funcionó para usted y no olvide marcar la respuesta como aceptada si lo hizo.
Argusvision

3
No necesita -s, y solo necesita bashsi realmente quiere forzar el uso bash. Por lo general, puedes simplementessh user@remotehost < local_script.sh
janos

1
¿Qué pasa si el script local tiene operandos?
kmassada 05 de

Tengo un script que necesita argumentos, por ejemplo, "sh setup.sh arg1 arg2 arg3" cómo ejecutarlo
Amarjit Singh

4

La respuesta de phoibos es el trabajo para mí.

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

Pero debe asegurarse de que su script explícitamente llame a exit o permanecerá conectado al servidor remoto después de la ejecución del script.

Para ser breve, no olvide poner esto al final de local_script.sh:

exit 0
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.