O comando Linux Remote Shell (RSH) permite a execução de um único comando em uma máquina remota especificada. RSH se conecta remotamente ao host especificado e você pode executar apenas um comando selecionado por determinado tempo.
O uso do RSH é benéfico quando você não precisa ficar conectado à máquina remota. Se você sabe qual comando especificar e o caminho para ele, o RSH é perfeito para o trabalho. Discutiremos o uso do RSH para conectar à sua máquina remota usando exemplos diferentes. Vamos começar!
Como executar o comando remotamente com rsh
O comando rsh é fácil de usar. Você só precisa do nome da máquina ou seu IP e o comando.
1 | $ RSH MACHINENName/comando IP |
O comando rsh funciona semelhante ao comandos rlogin e rcp. Ele acessa as máquinas remotas configuradas no arquivo etc/hosts. No entanto, se a máquina remota não for especificada no arquivo, você poderá invocar diretamente usando seu nome de host e IP.
Conectando a máquina remota usando o nome do host
Para se conectar a uma máquina remota, você precisa saber o nome do host. No nosso caso, nossa máquina remota é Kyle. Então, para se conectar a ele usando o nome do host, o comando é o seguinte:
1 | $ rsh kyle ls ~/desktop |
O comando anterior lista o conteúdo do diretório da área de trabalho.
Se abrirmos a máquina remota, podemos ver os arquivos disponíveis na área de trabalho/.
Vamos executar o comando remoto e teremos os mesmos arquivos.
Se você tiver o erro refletido na imagem anterior, isso implica que o nome do host não é definido em seu /etc/arquivo hosts. Então, vá em frente e abra o arquivo, adicione o endereço IP da máquina remota e o nome. No nosso caso, o arquivo é o seguinte:
1 | $ sudo nano /etc /hosts |
Salve a configuração e execute o comando novamente. Agora você deve ver a conexão estabelecida. Podemos ver nossos arquivos de desktop na seguinte saída:
Observe que você ainda precisa da senha para a máquina remota. Depois que o comando for executado, você deve executá-lo novamente se precisar usar outro comando.
Conectando a máquina remota usando o nome do host e o IP
No método anterior, você precisa adicionar o nome da máquina remota à lista de dispositivos confiáveis no arquivo /etc /hosts. No entanto, há outra maneira de se conectar à mesma máquina remota e executar um comando sem salvar seus detalhes. Você precisará do IP exato do seu dispositivo remoto e seu nome de host.
Nossa máquina remota está em caixa virtual, por isso temos o mesmo IP local que usamos no método anterior.
Use o comando abaixo para conectar -se à máquina remota e ainda liste os arquivos na área de trabalho/:
1 | $ rsh -l |
Vemos que ainda acessamos os mesmos arquivos na saída.
Mesmo com este método, você ainda precisa da senha para a máquina remota.
Salvando a saída da máquina remota para a máquina local
O ponto principal de conectar -se à máquina remota é executar um comando. Se o comando retornar uma saída, você poderá transmitir -o para a máquina local.
Por exemplo, se precisarmos salvar o conteúdo da área de trabalho/ em vez de listá -los como fizemos nos métodos anteriores, o novo comando é o seguinte:
1 | $ rsh kyle ~/desktop> new1.TXT |
Um novo arquivo, new1.TXT, é criado. Se listarmos seu conteúdo, vemos os arquivos na área de trabalho da máquina remota.
Você pode usar o mesmo conceito para executar qualquer comando na máquina remota.
Executando comandos para a máquina remota usando RSH
Até agora, vimos como podemos executar um comando que exibe a saída para a máquina local. E se você quiser manipular os arquivos ou texto para o dispositivo remoto em vez disso? Isso também é possível.
Por exemplo, vamos mover o conteúdo na área de trabalho/ arquivo da máquina remota para uma nova pasta.
1 2 3 | $ rsh kyle mkdir ~/desktop/testfolder |
Tudo funcionou como esperado.
Conclusão
Vimos como usar o rsh comando para acessar e executar um comando em uma máquina remota usando seu nome de host e ip. Conforme discutido no artigo, o comando rsh é útil quando você precisa executar comandos sem criar uma conexão permanente com seu dispositivo remoto.