将 telnet 会话记录为后台进程

Posted

技术标签:

【中文标题】将 telnet 会话记录为后台进程【英文标题】:logging a telnet session as a background process 【发布时间】:2014-09-30 20:58:02 【问题描述】:

我想要实现以下目标:我们有一个电信系统,它对所有传入和传出呼叫进行协议,并通过 telnet 实时访问数据。我想要做的是在与系统永久连接并记录数据的 Debian VM 上运行后台脚本。 经过一番研究(我对 shell 脚本非常不熟悉),我决定使用工具脚本并期望。 到目前为止,日志记录部分有效;背景部分不太好。我向您展示我目前拥有的两个脚本:

#!/bin/bash
script -f -q -c"./autotelnet.sh 192.168.xxx.xxx mylogin mypassword" -a output.log &

这是自动 telnet 连接的脚本:

#!/usr/bin/expect -f
#autotelnet.sh
set timeout 20
set name [lindex $argv 0]
set port [lindex $argv 1]
set user [lindex $argv 2]
set password [lindex $argv 3]
spawn telnet $name $port
expect "Escape character is '^]'.-" #This is the actual login name prompt. 
send "$user\r"
expect "Password:"
send "$password\r"
interact

现在,如果我只输入“./telefonlog &”,尽管第一个脚本中有与符号,但它不会在后台启动,但所有内容都会按应有的方式记录下来。 (顺便说一句,在 telnet 会话中,我无法将 CTRL-Z 放入 bg 命令中)。如何强制期望脚本留在后台? 提前致谢!

【问题讨论】:

【参考方案1】:

试试“expect_background”。有关“http://linux.about.com/od/commands/a/The-Linux-Unix-Command-Expect_2.htm”的更多详细信息。

【讨论】:

以上是关于将 telnet 会话记录为后台进程的主要内容,如果未能解决你的问题,请参考以下文章

linux 后台进程

linux 后台进程

Linux后台进程

让linux进程后台运行会话断开不退出

使用 SSH 在远程服务器上启动后台进程,并退出会话

如果我们关闭它启动的终端,linux 会杀死后台进程吗?