如何发送命令(保持telnet会话存活),而期望可以得到特定的文本



我必须将来自1980年电话系统(DMS100)的命令的输出保存到一个文件中。我有一个期望脚本做到这一点,但我的问题是:

  1. 这个命令可以输出长达10小时的信息。
  2. 由于某些原因,在提交我的命令后,我的会话在10分钟后关闭。

我需要这样的东西:发送命令,而期望可以得到特定的文本

但不同的是,我的期望可以在10-12小时后实现,而我的会话每10分钟失效一次。

我想发送一个不可见的字符,而我期望我的字符串,以保持我的会话存活。像这样:

While expect "The End Of My Output"
{
send 07
}

我该怎么做?

编辑:

我的问题是我正在使用的telnet端口被配置为10分钟超时。发现另一个端口没有超时,并且工作正常

试试这样做(未测试):

# timeout after 5 minutes
set timeout 300
expect {
  "The End Of My Output" {
    # got all the output
  }
  timeout {
    send "07"
    exp_continue
  }
}

最新更新