ルーターから再起動する必要があるモデムがあります。モデムはTelnetのみを許可し、Web GUIを備えています。ルーターからリモートで手動でログインすると、問題なくモデムを再起動できます。
ただし、ルータで次のコマンドを実行しようとすると:
(sleep 1; echo usr; sleep 1; echo pwd; sleep 5; echo reboot; ) | telnet 192.168.0.1
ログインすると、#
ルータにプロンプトが表示されますが、3番目のコマンドは実行されません。私は何が間違っていましたか?
テスト目的で:
ls
代わりに再起動を試してみました。sleep
長さを変えました。- ルーターの代わりに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秒をお勧めしますが、状況によっては調整が必要な場合があります。reboot
telnet
この試み
( s(){sleep "${1:-1}";}; s; echo usr; s; echo pwd; s; echo reboot; s 2 ) | telnet 192.168.0.1