Bash Script - inicia o aplicativo redirecionado remoto X

1

Talvez eu esteja usando palavras-chave erradas para encontrar uma resposta para esse requisito.

Eu tenho uma GUI instalada em um sistema Linux remoto que usa conexão remota e inicia o aplicativo com o redirecionamento X, assim:

ssh -Y [email protected]
cd /home/user.known/TheAppDir/
sh ./ApplicationCommand

com o acima eu tenho a GUI exibida no meu linux local do aServer

A minha pergunta é - como posso escrever um bash no meu linux local que iniciaria o processo acima de uma só vez? Idealmente, quero executar um script bash como:

aServer.ApplicationCommand

E eu tenho a GUI sendo executada localmente como resultado?

    
por NicolasDiogo 10.09.2015 / 12:26

1 resposta

1

Se você criar o arquivo aServer.ApplicationCommand (não esqueça o chmod + x para torná-lo executável) e coloque nele:

#!/bin/bash
ssh -Y [email protected] "cd /home/user.known/TheAppDir/ ; sh ./ApplicationCommand"

Isso deve funcionar. Você ainda será solicitado a fornecer uma senha, a menos que tenha as chaves ssh configuradas.

Explicação

O SSH pode ser usado estritamente para executar um comando em vez de retornar uma sessão, colocando o comando após o comando SSH. Essencialmente, ao fazer isso, ele abre uma sessão, executa o comando fornecido e, em seguida, o fecha.

Como você deseja que vários comandos sejam executados, basta colocar um ponto e vírgula entre os dois para separá-los e incluí-los entre aspas, de forma que permaneça um argumento para o comando SSH.

BÔNUS

Renomeie o script para aServer e altere o script para:

#!/bin/bash
ssh -Y [email protected] "cd /home/user.known/TheAppDir/ ; sh ./$1"

e chamá-lo usando aServer ApplicationCommand , a vantagem disso é se você tem vários scripts em TheAppDir que você quer chamar, apenas mude o argumento.

Acho que você ainda pode capturar $? para ver se o script foi executado corretamente e criar uma mensagem de erro se o arquivo não foi encontrado, mas você teria que testá-lo.

    
por 10.09.2015 / 12:52