Execute o comando na tela remota

1

Em um servidor remoto, tenho várias telas abertas e uso cada uma delas para diferentes finalidades. Por exemplo, a tela com o ID 'build' está sendo usada para compilar alguns programas. Eu posso abrir essa tela a qualquer momento, usando:

 ssh myserver -t screen -r build

No entanto, gostaria de executar um comando nessa tela remota, diretamente da minha máquina host. Por exemplo, eu gostaria de executar uma ls na tela build remota. Eu tentei algo como:

 ssh myserver -t screen -r build -X ls .

mas sem sorte.

Alguma ideia? Isso é possível?

Obrigado!

EDITAR: meu caso de uso real:

./buildSomethingOnRemoteScreen() && ./fetchTheBuiltOutputAndDoSomethingWithIt()
    
por Paschalis 11.11.2015 / 21:38

2 respostas

1

Eu uso o tmux (mais flexível que a tela) no meu servidor, e a execução de um comando diretamente após a conexão:

ssh myserver -t 'tmux send-keys -t session-name "ls ./" C-m; tmux attach -t session-name '

Você só precisa se certificar de que há uma sessão em execução com o nome da sessão. O C-m emula ENTER depois de digitar "ls ./"

    
por 11.11.2015 / 23:23
0

Você pode executar qualquer script com o comando paste:

# read script into register p
ssh hostname screen -S build -X readreg p script_on_the_host
# paste contents of register p into running screen session
ssh hostname screen -S build -X paste p
    
por 12.11.2015 / 00:03