如何使用expect登录远程机器?

时间:2012-08-10 08:51:00

标签: expect

我正在使用期望登录远程机器。但我真的不知道这是什么期望。通过谷歌搜索,我了解这些命令。如何保存这些脚本&怎么执行呢?

spawn telnet 10.123.9.111
expect login {send username\r}
expect password {send password\r}

这是对的吗?建议改进这个脚本最受欢迎。谢谢。

1 个答案:

答案 0 :(得分:1)

将其保存到文件telnet.exp

#!/usr/bin/expect -f
spawn telnet 10.123.9.111
expect login {send username\r}
expect password {send password\r}
interact  ;# I assume you want to do something on the remote machine here

使其可执行:chmod 700 telnet.exp - 您希望使用限制性权限,因为您将密码存储在纯文本文件中并不是一个好主意(您应该使用带密钥的ssh,除非设备无法运行ssh)

运行它:./telnet.exp

如果您希望能够将变量传递给脚本:

#!/usr/bin/expect -f
lassign $argv ip user passwd
spawn telnet $ip
expect login {send $user\r}
expect password {send $passwd\r}
interact  ;# I assume you want to do something on the remote machine here

运行它:./telnet.exp 10.123.9.111 username secret

这也很糟糕,因为现在密码会显示在ps列表中。