Telnet remoto para reiniciar um modem não está funcionando

0

Eu tenho um modem que preciso reinicializar de um roteador. Um modem aceita apenas o telnet e possui uma GUI da Web. Se eu telnet do roteador manualmente, eu posso reiniciar o modem sem nenhum problema.

Mas quando tento emitir o seguinte no roteador:

(sleep 1; echo usr; sleep 1; echo pwd; sleep 5; echo reboot; ) | telnet 192.168.0.1

ele irá me logar, mostre um prompt # no roteador, mas ele nunca fará o terceiro comando. O que estou fazendo de errado?

Para fins de teste:

  1. Eu tentei usar ls instad de reboot
  2. Tentei variar os sleep lengths
  3. Eu tentei de um Raspberry Pi em vez de um roteador

mas nunca consigo um modem aceitar e / ou executar qualquer comando após um login usando o telnet dessa maneira.

Eu não tenho expect disponível. Eu preferiria resolvê-lo usando o script sh do roteador já que ele faz várias coisas lá.

    
por Pila 12.10.2016 / 11:46

2 respostas

2

Eu fui muito rápido. Trabalha com:

(sleep 1; echo usr; sleep 1; echo pwd; sleep 1; echo ls; sleep 1; ) | telnet 192.168.0.1
    
por 12.10.2016 / 13:13
2

Você precisa de um sleep à direita para permitir que o horário do roteador execute o comando reboot antes que a sessão telnet seja fechada. Eu sugeriria dois segundos, mas você pode precisar ajustar isso para sua situação.

Tente isso

( s(){sleep "${1:-1}";}; s; echo usr; s; echo pwd; s; echo reboot; s 2 ) | telnet 192.168.0.1
    
por 12.10.2016 / 23:42