如何将telnet控制台日志redirect到文件linux

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

例如:

telnet $someIp > someFile #ls #exit 

我想把控制台日志保存在文件名“someFile”中。 我正在使用tcl自动化。 截至目前,我正在做tcl spawn telnet $someIp

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

可以这样做吗?

期望有一个程序化的手段来开始和停止录制(或logginig)。 给定文件名参数, log_file命令打开文件并开始记录。 如果日志文件已经打开,则先关闭旧文件。

录制是通过追加到文件来完成的,所以如果之前已经存储了任何内容,它将保留。 重新开始,使用-noappend标志。

您可以通过在不需要的时候关闭日志来节省空间。 这是通过调用没有参数的log_file来完成的。 例如,下面的片段开始录制,做一些I / O,停止录制,再做一些I / O,然后再次开始录制。

 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 

参考: 探索期望

你可以使用tee命令来做到这一点:

 telnet $someIp | tee -a -i someFile