Execute o comando na máquina remota usando telnet em uma linha

Execute o comando na máquina remota usando telnet em uma linha

Preciso escrever um script para monitorar a interface wlan0 da minha máquina remota. Posso fazer isso executando iwconfig wlan0repetidamente em uma máquina remota. Mas como fazer login nessa máquina e executar este comando via telnet. Posso fazer isso via ssh, mas o ssh demora para fazer login e trava se a conexão com a máquina remota cair no meio da execução.

Responder1

Em vez de invocar repetidamente o comando ssh, você pode executar ssh para executar repetidamente o comando no sistema remoto e então analisar e usar a saída localmente. Então você não teria que continuar executando a conexão ssh e aguentando o atraso inicial.

Por exemplo:

ssh remotehost "while [ "1" ] ; do iwconfig wlan0 ; sleep 1 ; done"

Ou você pode usar o netcat para enviar a saída do sistema remoto de volta para sua máquina. Por exemplo, execute isto na máquina local:

nc -l 9999

Então na máquina remota:

while [ "1" ] ; do iwconfig wlan0 ; sleep 1 | nc localmachine 9999

Substitua aqui localmachine pelo host ou ip da máquina que estará fazendo o "monitoramento".

Você pode até canalizar a saída do nc lendo essa porta para outro comando.

Mais próximo da sua pergunta real, você poderia fazer isso no sistema remoto para atuar como um "servidor" telnet:

while [ "1" ] ; do iwconfig wlan0 | nc -l 9999 ; done

Então você poderia fazer isso para obter a saída:

telnet remotehost 9999

informação relacionada