shell脚本成功登录telnet,之后如何发出命令?

时间:2012-06-22 00:44:27

标签: shell telnet expect

#!/usr/bin/expect -f
spawn telnet 10.21.0.17
expect -re "login"
send "admin\n"
expect -re "Password"
send "supersecurepassword\n"
interact

按预期工作。运行脚本后,我登录到我在行spawn telnet 10.21.0.17

中使用的任何远程IP

然后它把我带到了AP的壳牌

  

WAP->

如何发出更多命令?我想发布reboot,然后发布sleep 20,最后exit

我尝试过使用echoexpect但没有成功。我也尝试删除interact但没有成功。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

只需在sleep之前添加expect,当然还有not including interact即可解决此问题,以下情况很有效:

#!/usr/bin/expect -f
spawn telnet 10.21.0.17
expect -re "login"
send "admin\n"
expect -re "Password"
send "supersecurepassword\n"
sleep 5
expect "WAP"
send "reboot\n"
send "exit\n"

作为参考,这用于在D-Link DAP-2590无线接入点上自动重启。既然我知道这一点,我可能会将它用于其他事情:更改密码等。希望它能帮助其他人。