Como eu abro uma nova janela de terminal para o ssh em um novo computador e executo comandos?

5
Basicamente, eu tenho um computador no qual eu tenho que fazer ssh e extrair cerca de 8 terminais para monitorar vários threads e arquivos de log. Eu gostaria de ter um script da minha máquina de construção que possa fazer isso tudo por mim. Por exemplo, se eu quiser assistir as filas de mensagens, gostaria de executar algo assim:

gnome-terminal --window-with-profile=NOCLOSEPROFILE -e "ssh root@IP 'watch ipcs'" 

Mas o comando ssh não parece ser executado corretamente. Eu tentei uma dúzia de iterações disso, sem sorte. Aqui está uma captura de tela, se isso ajudar.

Então, basicamente, eu quero que isso seja algo que eu possa colocar em um script, ou até mesmo ser algo comandável, então, dado um endereço IP e um comando para executar, eu gostaria que uma nova janela de terminal abrisse uma conexão ssh para esse ip e execute o comando.

Obrigado antecipadamente

** EDIT Eu pareço ser capaz de fazer isso e executar a maioria dos comandos com o comando acima, mas o comando watch não funciona sobre ssh , então talvez a sintaxe não seja o problema. Existe uma razão watch pode não funcionar aqui, onde

gnome-terminal --window-with-profile=NOCLOSEPROFILE -e 'ssh -X root@$IP "tail -f /home/log/alog.log"'

funciona bem?

    
por zachd1_618 17.06.2013 / 23:56

2 respostas

1

Em vez de abrir várias janelas e estabelecer várias sessões ssh (na mesma máquina?), dê uma olhada na tela. Você pode ssh para um host, iniciar a tela e a partir daí abrir vários consoles virtuais, um para cada comando que você deseja executar.

O que é realmente bom na tela, é que se você perder a conexão ssh, você pode criar uma nova e se reconectar às sessões da tela de execução. É muito legal. Há também o tmux, que é um programa similar (não tenho certeza de como está disponível em diferentes Linuxes.

Ref: link

    
por pcm 18.06.2013 / 00:34
1

Você está tentando executar um comando interativo que requer um tty e, por padrão, o ssh não aloca um tty quando você especifica um comando para ser executado na máquina remota. Adicione o sinalizador -t para forçá-lo a alocar um tty.

    
por psusi 18.06.2013 / 00:47