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 '
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.
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 '
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á.