unix - 问题与expect -send : spawn id exp4 not open

标签 unix send expect

我的期望代码是这样做的:它通过 ssh 连接到另一台机器,发送密码,然后返回该机器的主机名。我在下面给出了我的代码示例
#!/usr/bin/expect -f
设置 ipaddr [lrange $argv 0 0]
设置密码 [lrange $argv 1 1]
设置超时-1
生成 ssh root@$ipaddr 主机名
match_max 100000
期待“*assword:*”
发送 -- "$password\r"
期待 eof
这段代码完美地运行了很多次,但间歇性地,我收到以下错误
发送:spawn id exp4 未打开
执行时
"发送 -- "$密码\r""
为什么会这样?

最佳答案

想通了为什么。
我已经生成了 ssh key 并将其复制到目标机器上。所以没有“密码:”提示。因此,在发送完成之前,ssh 连接已经关闭。

我从目标机器上删除了 ssh key 并再次运行脚本并观察到没有问题

关于unix - 问题与expect -send : spawn id exp4 not open,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1387848/

相关文章:

c# - 为什么零长度的 Send() 在错误的 TCP 套接字连接上不会失败?

linux - 来自期望文件中的文本文件的源不起作用

bash - 我如何使用Expect通过ssh连接到系统并更改主机系统的密码?

c - 为什么在 XV6 中常量 PHYSTOP 被定义为 0xE000000?

unix - 关闭子进程中打开的文件描述符

email - 在 Lua 中发送电子邮件

linux - 为什么在发送密码后使用 Expect 自动化 SFTP 会挂起?

Linux "mv"命令,创建一个新文件(没有可用文件夹时)

java - 如何在 java servlet 中以正确的方式执行此命令

excel - 在Excel中使用VBA发送即时消息