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

0

Eu preciso escrever um script para monitorar a interface wlan0 da minha máquina remota. Eu posso fazer isso executando iwconfig wlan0 repetidamente na máquina remota. Mas como fazer o login nessa máquina e executar este comando via telnet. Eu posso fazer isso via ssh, mas o ssh leva tempo para fazer o login e trava se a conexão com a máquina remota cair no meio da execução.

    
por Kumar 29.05.2015 / 01:35

1 resposta

1

Em vez de invocar repetidamente o comando ssh, você pode executar o ssh para executar repetidamente o comando no sistema remoto e, em seguida, analisar e usar a saída localmente. Então você não teria que continuar executando a conexão ssh e aguentar 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 a sua máquina. Por exemplo, execute isso na máquina local:

nc -l 9999

Em seguida, na máquina remota:

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

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

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

Mais próximo da sua pergunta, você pode fazer isso no sistema remoto para funcionar como um "servidor" de telnet:

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

Então você pode fazer isso para obter o resultado:

telnet remotehost 9999
    
por Stephen 29.05.2015 / 01:58