Carrega o arquivo pelo comando ssh e execute na máquina remota

4

Estou tentando encontrar a maneira mais simples de fazer upload de um arquivo usando o ssh e depois disso, executar um comando na máquina remota na mesma sessão ssh para algum pós-processamento, para que eu não precise fazer o login novamente. O upload deve, se possível, mostrar algum indicador de progresso.

Até agora eu olhei em scp e rsync, e ambos não são capazes de rodar nenhum hook. (Eu poderia usar o parâmetro --rsync-path para executar algum script antes rsync), mas eu quero fazer o pós-processamento. Existe alguma maneira de abrir uma sessão ssh, fazer upload, executar um comando e fechá-lo novamente?

    
por janoliver 15.04.2012 / 10:15

2 respostas

4

Você pode querer o mecanismo ControlMaster em ssh .

    
por 15.04.2012 / 10:16
5

Bem, você pode canalizar tudo por um comando ssh com cat na outra ponta. Aqui eu carrego um script de shell, o faço executável e o executo:

$ cat sayhi.sh | ssh myserver 'cat > ./remotehi.sh ; chmod +x ./remotehi.sh ; ./remotehi.sh'
hello, world!
    
por 15.04.2012 / 11:18

Tags