远程 telnet 重新启动调制解调器不起作用

远程 telnet 重新启动调制解调器不起作用

我有一个调制解调器,需要从路由器重新启动。调制解调器仅接受 telnet 并具有 Web 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 而不是路由器

但我永远无法让调制解调器在使用 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,以便路由器有时间在会话关闭reboot之前执行命令telnet。我建议两秒钟,但您可能需要根据自己的情况进行调整。

尝试这个

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

相关内容