モデムを再起動するリモート Telnet が機能しません。

モデムを再起動するリモート Telnet が機能しません。

ルーターから再起動する必要があるモデムがあります。モデムはTelnetのみを許可し、Web GUIを備えています。ルーターからリモートで手動でログインすると、問題なくモデムを再起動できます。

ただし、ルータで次のコマンドを実行しようとすると:

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

ログインすると、#ルータにプロンプ​​トが表示されますが、3番目のコマンドは実行されません。私は何が間違っていましたか?

テスト目的で:

  1. ls代わりに再起動を試してみました。
  2. sleep長さを変えました。
  3. ルーターの代わりにRaspberry Piを試してみました。

ただし、Telnetを使用してログインした後、モデムにコマンドを受け入れたり実行したりすることはできません。

使用できるものはありません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

関連情報