Cómo ejecutar un script bash en un host Linux, desde Windows usando plink


2

Estoy tratando de ejecutar un archivo bat simple en Windows que ejecutará un script bash en una máquina remota de Linux. El script bash se encuentra en la máquina Linux.

Por ejemplo: estoy tratando de ejecutar este comando en un archivo por lotes en Windows:

plink.exe -pw <password> root@<ip> bash -c "/root/script.sh"

Resultado:

  • Cuando se ejecuta desde Windows, el cmd está atascado para siempre
  • Al ejecutar el script específico ( /root/script.sh) desde la máquina Linux, funciona bien.
  • El script contiene código ruby ​​y estoy usando RVM

¿El script requiere alguna interacción? ¿Qué pasa si corres en su bash -c "/root/script.sh &"lugar?
Daniel Andersson

Respuestas:


0

¿Qué ves si ejecutas lo siguiente? esto pasará por el guión.

plink.exe -pw <password> root@<ip> bash -x "/root/script.sh"

Además, tenga en cuenta que la configuración del entorno es diferente cuando se ejecuta de forma remota. debe asegurarse de que todo esté configurado correctamente, como PATH. entonces su script debe decir / usr / bin / ruby ​​en lugar de ruby, o agregar / usr / bin en la RUTA, etc.

O busca un archivo que los configure.


Recibo el siguiente error: "/ bin / sh: no se puede ejecutar el archivo binario
user128877

ok, luego cambie bash a / bin / bash, o / bin / sh e intente nuevamente.
johnshen64

¿Cómo debo escribir en Windows? Estoy corriendo esto desde ventanas de la máquina a máquina Linux
user128877

plink.exe -pw <contraseña> root @ <ip> / bin / bash -x "/root/script.sh"
johnshen64

plink.exe -pw <contraseña> root @ <ip> / bin / sh -x "/root/script.sh"
johnshen64
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.