run - Ejecutar script Bash almacenado en un archivo a través de SSH
ssh command (4)
En respuesta aceptada veo:
Me gustaría tenerlo como una sola línea. ¿Podrías hacer un pequeño código de ejemplo?
Eso debería ser:
ssh root@MachineB ''bash -s -- uno'' < local_script.sh
o mejor, con un documento aquí en
ssh root@MachineB ''bash -s -- uno'' <</EOF
> date
> echo $1
> EOF
jue sep 18 13:01:25 CEST 2014
uno
Digamos que tengo el siguiente script de Bash almacenado en el archivo foo.sh
:
#!/bin/bash
echo foo
Sin tener que scp
el archivo, ¿cómo podría ejecutar el script almacenado en foo.sh
en una máquina remota?
He intentado lo siguiente (con algunas variaciones) sin éxito:
$ ssh root@remote eval `cat foo.sh`
eval `cat foo.sh`
parece expandirse a eval #!/bin/bash echo foo
aquí
cat foo.sh | ssh -T root@remote
cat foo.sh | ssh -T root@remote
será para el truco. La opción -T
suprime una advertencia que de otro modo obtendría porque está canalizando la entrada de un archivo.
cat foo.sh | ssh HOSTNAME
Ahora probado, sin embargo: manejar con cuidado! :)
(guión eliminado (ver comentarios) y casi todo :))
ssh root@MachineB ''bash -s'' < local_script.sh
Lo obtuve de ese hilo: ¿Cómo usar SSH para ejecutar un script de shell en una máquina remota?