Telnet

如何阻止 telnet 會話超時?

  • February 23, 2018

我使用 telnet 連接到 Cisco 路由器。

連接每 3 分鐘超時一次。

如何阻止我的 telnet 會話由於超時而與路由器斷開連接。

我了解 putty 和 SecureCRT 可以定期發送空字元或轉義字元以阻止會話(telnet 或 SSH)超時。

如何在沒有 3rd 方程序的 Linux 上執行此操作?啟動終端時,我使用以下腳本作為啟動腳本:

#!/usr/bin/expect -f

spawn telnet <Router IP Address>
expect -re "ogin: "
send "*******\n"
expect -re "assword:"
send "***********\n"
sleep 2
expect "Router>"
interact

interact語句expect可以採取成對的模式和動作,有點像expect語句。特別是,您可以添加超時模式和發送操作。例如,

interact timeout 10 { send "date\r" }

會像往常一樣發送您輸入的內容,但如果您在 10 秒內不輸入,它將發送字元串date和輸入。如果您使用 telnet,在字元模式下,您可以通過簡單地發送一個空格後跟一個退格鍵來保持連接,這不會破壞您已經輸入的任何部分行:

interact timeout 150 { send " \b" }

引用自:https://unix.stackexchange.com/questions/424701