如何将telnet控制台日志重定向到文件linux

时间:2015-02-03 06:41:49

标签: linux shell tcl

我想将telnet控制台日志重定向到linux中的文件。

例如:

telnet $someIp > someFile
#ls
#exit

我希望控制台日志保存在文件名“someFile”中。我使用tcl来自动执行此操作。截至目前,我正在spawn telnet $someIp中进行tcl

这不会捕获控制台日志并将其保存到文件中。

可以这样做吗?

2 个答案:

答案 0 :(得分:13)

您可以使用tee命令执行此操作:

telnet $someIp | tee -a  -i someFile

答案 1 :(得分:2)

Expect有一种编程方式来启动和停止录制(或logginig)。给定文件名参数,log_file命令打开文件并开始记录。如果日志文件已打开,则先关闭旧文件。

通过附加到文件来完成录制,因此如果先前已将任何内容存储在文件中,则它仍然存在。要重新开始,请使用-noappend标志。

您可以通过在不需要时关闭日志记录来节省空间。这是通过调用没有参数的log_file来实现的。例如,以下片段开始记录,执行一些I / O,停止记录,执行更多I / O,然后再次开始记录。 / p>

expect . . . ; send
# start recording
log_file telnetlog
expect . . . ; send
# stop recording
log_file
expect . . . ; send
# start recording
log_file telnetlog
expect . . . ; send

默认情况下,log_file仅记录用户看到的内容。如果已调用log_user命令来禁止生成的程序的输出,则log_file不会记录抑制的输出,因为用户也没有看到它。 log_file可以使用-a标志记录抑制的输出(对于"所有输出")。

log_file -a log

和以前一样,可以通过发出不带参数的log_file来禁用此日志记录。要返回记录用户看到的内容,请在不使用-a。

的情况下调用log_file
log_file -a log
expect . . . ; send . . .
log_file log

参考:Exploring Expect