Você pode querer o mecanismo ControlMaster
em ssh
.
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?
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!