Como posso executar um script python em uma máquina Windows do Linux usando o ssh como uma tarefa em segundo plano?

3

Eu tenho que orquestrar algumas tarefas de script entre algumas máquinas Linux e uma máquina Windows. ssh funciona bem para máquinas linux processando abaixo:

ssh mysuser@targetLinuxmachine "python '/pathtomyscript/myscript.py' &"

Mas o mesmo método não funciona como tarefa em segundo plano quando estou enviando o comando para uma máquina Windows. Na máquina Windows, tenho o servidor ssh em execução e a própria conexão ssh está funcionando. A chave pública RSA também foi inserida. Na verdade, os comandos abaixo são executados:

ssh -n -f mysuer@targetwinmachine "python 'C:\Windowspath\myscript.py -someswitch parameter' &"

no entanto, executar o comando no bash levará o meu terminal para o console do Windows e não me permite executá-lo como uma tarefa de back ground. Eu acho "&" não está funcionando no Windows para executar o comando como uma tarefa em segundo plano.

Como posso executar o script equivalente em uma máquina Windows como uma tarefa em segundo plano?

    
por MRK 19.02.2014 / 13:33

4 respostas

2

Sim, cygwin tem um servidor ssh muito bom para windows. Primeiro você deve baixar e instalar isso.

Depois que você pode entrar em sua máquina Windows com a linha de comando ssh, você pode usar ssh-keygen para torná-lo sem senha e automático.

A terceira coisa foi instalar python em sua máquina Windows, que você pode obter de http://www.python.org/getit/windows/ .

É para mim uncelar, qual destas etapas não funciona, mas provavelmente o seu principal problema é com a instalação do servidor ssh em sua máquina Windows. Você pode entrar no seu servidor com a linha de comando ssh da sua caixa unix / linux? Se não, atualize sua pergunta e eu atualizarei minha resposta.

    
por 19.02.2014 / 13:46
1

Você pode usar o Putty a partir de uma linha de comando:

plink mysuser@targetLinuxmachine "python '/pathtomyscript/myscript.py' &"

As chaves SSH podem ser gerenciadas via PuttyAgent.

    
por 19.02.2014 / 13:47
1

Por meio dos scripts cgi de um servidor apache, é uma maneira bacana de executar código em outra máquina.

    
por 19.02.2014 / 23:42
1

Então você só quer rodar o comando em segundo plano no linux? Eu acho que você está apenas colocando o & no lugar errado. Coloque o & fora do "":

ssh -n -f mysuer@targetwinmachine "python 'C:\Windowspath\myscript.py -someswitch parameter' " &
    
por 19.02.2014 / 22:27