Arquivo de tubulação SSH e executar

4

Eu estou tentando executar um binário no meu servidor ssh assim que eu logar. No entanto, eu posso querer empurrar a atualização do meu binário com um único login ssh e executar também. Meu processo atual para fazer isso é

cat exec | ssh user@host 'cat - > exec; chmod +x exec; ./exec'

Isso não funciona quando eu acerto a execução do accutal que parece congelar. Eu não obtenho resposta do servidor depois disso. O estranho é que depois de ter carregado o arquivo eu posso simplesmente executar

ssh user@host './exec'

e o arquivo é executado muito bem. Eu sei que está atingindo o processo de execução do binário e o chmod está definindo corretamente o bit executável do arquivo que ele simplesmente não executará em um único comando. Alguém tem alguma sugestão.

    
por Blackninja543 02.05.2012 / 05:22

2 respostas

2

Use tar em vez de cat, e o tar preserves também, se exec tiver x bit.

tar cf - ./exec | ssh usuário @ servidor 'tar xf -; ./exec '

    
por 02.05.2012 / 05:45
1

Meu palpite é que seu binário está tropeçando na seqüência de escape ssh. O ssh não é garantido como binário transparente, mas você pode ver se adicionar ' -e none ' ao seu comando ssh funcionará.

    
por 02.05.2012 / 05:27

Tags