Carregue o arquivo via ssh e execute o comando na máquina remota

Carregue o arquivo via ssh e execute o comando na máquina remota

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-pathparâ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 sshcomando com um catna 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 ControlMastermecanismo no formato ssh.

informação relacionada