Bash 期望 Telnet : handle premature connection close by server

标签 bash connection timeout expect telnet

今天的问题是:

If i have an expect script which simply automate some basic telnet operations but sometimes the server "bad act" and close the connections can i handle it and avoid to wait for some timeout occurs?

一些规范:
当服务器断开连接时,我在控制台上打印的字符串是经典的“外部主机关闭的连接”。

期望的telnet自动化必须发送的操作如下:

身份验证阶段:

  1. ← 等待提示

  2. → 发送用户名

  3. ← 等待密码

  4. →发送密码

  5. ← 等待提示

命令和输出阶段:

  1. → 发送命令字符串(一般是一些很简单的词:“voltage”、“temp”)

  2. ← 等待整个输出一般要等到下一个提示才干。 (输出包含许多符号和变量值,因此等待提示似乎是一个不错的策略。)

连接关闭阶段:

  1. →发送“退出”命令

  2. ← 等待合法“外部主机关闭连接”。

注意:

“连接被外部主机关闭”。可以在任何时刻发生,例如在任何阶段。详细地说,我有兴趣了解在等待提示或输出(步骤 1、3、5、7)而不是等待连接终止时是否可以解决此问题。

向大家致以最诚挚的问候,感谢愿意提供帮助的人!
注意安全,
卢卡

最佳答案

生成后,您可以设置一个expect_before 命令(一次),该命令将在您的脚本每次执行expect 时执行。例如

expect_before "Connection closed" { send_user "Unexpected close" ; exit 1 }

参见 example

关于Bash 期望 Telnet : handle premature connection close by server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61508105/

相关文章:

java - 建立与mysql数据库的连接(关于优化的问题)

c# - 多包含超时

haskell - 纯函数超时

linux - Bash:检测所有磁盘并显示可用空间

file - 如何找到目录及其子目录中最大的文件?

linux - 如何使用 python crypt 或 bcrypt 为 useradd 创建加密密码?

go - AWS API Gateway WebSockets [POST] @connections返回404未找到

php - 警告 : mysql_real_escape_string() [function. mysql-real-escape-string]:拒绝用户访问

eclipse - 尝试在 Eclipse 中以 Debug模式运行时出现 Tomcat 7.0 超时错误

string - 如何在命令中正确引用字符串以进行替换?