Como executar o script bash em um host Linux, a partir do Windows usando plink

2

Eu estou tentando executar um arquivo bat simples no Windows que irá executar um script bash em uma máquina Linux remota. O script bash está localizado na máquina Linux.

Por exemplo: Estou tentando executar este comando em um arquivo em lotes no Windows:

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

Resultado:

  • Ao correr de janelas, o cmd fica preso para sempre
  • Ao executar o script específico ( /root/script.sh ) da máquina Linux está funcionando muito bem.
  • O script contém código ruby ​​e estou usando o RVM
user128877
fonte
O script requer alguma interação? O que acontece se você correr bash -c "/root/script.sh &" em vez de?
Daniel Andersson

Respostas:

0

o que você vê se você executar o seguinte? isso irá percorrer o script.

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

Além disso, esteja ciente de que a configuração do ambiente é diferente quando você é executado remotamente. você deve se certificar de que tudo está configurado corretamente, como PATH. então seu script deve dizer / usr / bin / ruby ​​em vez de ruby, ou adicionar / usr / bin no PATH, etc.

Ou fonte de um arquivo que irá configurá-los.

johnshen64
fonte
Estou recebendo o seguinte erro: "/ bin / sh: não é possível executar o arquivo binário
user128877
ok, então mude o bash para / bin / bash, ou / bin / sh e tente novamente.
johnshen64
Como devo escrever no windows? Estou executando isso de máquina windows para máquina linux
user128877
plink.exe -pw & lt; senha & gt; root @ & lt; ip & gt; / bin / bash -x "/root/script.sh"
johnshen64
plink.exe -pw & lt; senha & gt; root @ & lt; ip & gt; / bin / sh -x "/root/script.sh"
johnshen64