모뎀을 다시 시작하는 원격 텔넷이 작동하지 않습니다.

모뎀을 다시 시작하는 원격 텔넷이 작동하지 않습니다.

라우터에서 재부팅해야 하는 모뎀이 있습니다. 모뎀은 텔넷만 허용하며 웹 GUI를 갖추고 있습니다. 라우터에서 원격으로 수동으로 로그인하면 문제 없이 모뎀을 다시 시작할 수 있습니다.

그러나 라우터에서 다음 명령을 실행하려고 하면:

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

로그인하면 #라우터에 프롬프트가 표시되지만 세 번째 명령은 실행되지 않습니다. 내가 뭘 잘못했나요?

테스트 목적으로:

  1. ls대신 다시 시작을 사용해 보았습니다 .
  2. sleep길이를 바꿔보았어요
  3. 라우터 대신 Raspberry Pi를 사용해 보았습니다.

그러나 텔넷을 사용하여 로그인한 후에는 모뎀이 명령을 수락하거나 실행하도록 할 수 없습니다.

사용할 수 있는 것이 없습니다 expect. 라우터의 sh스크립트가 이미 여러 가지 작업을 수행하고 있으므로 라우터의 스크립트를 사용하여 문제를 해결하는 것을 선호합니다 .

답변1

나는 너무 빨랐다. 이는 다음에 적용됩니다:

(sleep 1; echo usr; sleep 1; echo pwd; sleep 1; echo ls; sleep 1; ) | telnet 192.168.0.1

답변2

세션이 닫히기 전에 라우터가 명령을 실행할 sleep시간을 갖도록 후행 시간이 필요합니다 . 2초를 권장하지만 상황에 따라 조정이 필요할 수도 있습니다.reboottelnet

이 시도

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

관련 정보