
Estou tentando encontrar a maneira mais simples de fazer upload de um arquivo usando ssh e depois executar um comando na máquina remota dentro da mesma sessão ssh para algum pós-processamento, para que não precise fazer login novamente. O upload deve, se possível, mostrar algum indicador de progresso.
Até agora, examinei scp e rsync, e ambos não são capazes de executar nenhum gancho. (Eu poderia usar o --rsync-path
parâmetro para executar algum scriptantesrsync), mas quero fazer o pós-processamento. Existe alguma maneira de abrir uma sessão ssh, fazer upload, executar um comando e fechá-la novamente?
Responder1
Bem, você poderia simplesmente canalizar tudo através de um ssh
comando com um cat
na outra extremidade. Aqui eu carrego um script de shell, torno-o executável e o executo:
$ cat sayhi.sh | ssh myserver 'cat > ./remotehi.sh ; chmod +x ./remotehi.sh ; ./remotehi.sh'
hello, world!
Responder2
Você pode querer o ControlMaster
mecanismo no formato ssh
.