Bash Expect Telnet:处理服务器关闭的过早连接
Posted
技术标签:
【中文标题】Bash Expect Telnet:处理服务器关闭的过早连接【英文标题】:Bash Expect Telnet: handle premature connection close by server 【发布时间】:2020-08-13 21:55:43 【问题描述】:今天的问题是:
如果我有一个期望脚本,它只是自动化一些基本的 telnet 操作,但有时服务器“坏行为”并关闭 连接我可以处理它并避免等待一些超时 发生了吗?
一些规格: 当连接被服务器断开时,我在控制台上打印的字符串是经典的“连接被外部主机关闭”。
expect telnet 自动化必须发送的操作如下:
认证阶段:
←等待提示
→ 发送用户名
←等待密码
→ 发送密码
←等待提示
命令和输出阶段:
→发送一个命令字符串(一般很简单的一个字:“电压”、“温度”)
← 等待整个输出一般要等到下一个提示才行。 (输出包含许多符号和变量值,因此等待提示似乎是一个不错的策略。)
连接关闭阶段:
→ 发送“退出”命令
← 等待合法“连接被外部主机关闭。”
注意:
“连接被外部主机关闭。”可以在任何时刻发生,例如在任何阶段。详细地说,我有兴趣了解在等待连接终止的提示或输出(步骤 1、3、5、7)时是否可以解决此问题。
向大家致以最诚挚的问候,并感谢愿意提供帮助的人! 保持安全, 卢卡
【问题讨论】:
【参考方案1】:在生成之后,您可以设置一个 expect_before
命令(一次),该命令将在您的脚本每次执行 expect
时执行。例如
expect_before "Connection closed" send_user "Unexpected close" ; exit 1
见example
【讨论】:
哦,太好了!又好又顺。我会试一试!感谢您的回答。以上是关于Bash Expect Telnet:处理服务器关闭的过早连接的主要内容,如果未能解决你的问题,请参考以下文章