我有一个 Windows 7工作站,并使用PuTTY连接到 Linux服务器,并启用了会话日志记录.我以前使用过Printable输出选项,但是它没有转义字符的好处,但是如果我使用tab自动完成或退格,我输入的命令是不可搜索的,因为我在输入命令时更正了一个拼写错误(或3) .
注意:我安装了cygwin以获得额外的命令行工具支持(即grep,find等).
最近,我不得不回过头来找一些命令,直接与同事一起设置关于服务器上发生的事情的记录,并且无法查看我发出的最终命令是有问题的,这使得搜索日志以及更加困难更容易证明我的同事究竟发生了什么.
示例#1:
这是’pwd’命令的实际PuTTY日志文件,最初拼错为’pdw’,然后在使用cat或更少的情况下启用了Printable输出时更正为’pwd’.
注意:在这种情况下,less和cat之间没有区别,因为没有ESC代码并且只捕获了可打印输出.
$cat 20151112.170705.log =~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2015.11.12 17:07:05 =~=~=~=~=~=~=~=~=~=~=~= [root@eye ~]# pdwwd /root [root@eye ~]# exit logout $
如你所见,如果你要搜索pwd,你将得不到匹配的结果.我在Mac上使用了iTerm,并且知道它可以自动重放日志,看起来应该有办法看到我最终使用的最终结果.
输入PuTTY All会话输出日志记录选项.好的,所以这里是交易,启用了所有会话输出选项,日志文件被用于终端颜色的ESC代码和退格等不可打印的字符淹没.
示例#2:
这是’pwd’命令的实际PuTTY日志文件,最初拼写错误为’pdw’,然后更正为’pwd’,在less中查看时启用了所有会话输出.
$less 20151112.170457.log =~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2015.11.12 17:04:57 =~=~=~=~=~=~=~=~=~=~=~= Using username "root". Authenticating with public key "ssh2_rsa_2048_private_key_20111128.ppk" ESC[?1034hESC]0;root:~^GESC[1;30m[ESC[1;35mrootESC[1;30m@ESC[1;35meye ESC[1;34m~ESC[1;30m]ESC[1;35m# ESC[0mpdESC[ESC[Kwd /root ESC]0;root:~^GESC[1;30m[ESC[1;35mrootESC[1;30m@ESC[1;35meye ESC[1;34m~ESC[1;30m]ESC[1;35m# ESC[0mexit logout $
好的,所以我几乎要解决实际问题.如果我使用启用了All session输出选项的cat,它看起来很完美.这正是我想要看到和使用的东西.
示例#3:
这是’pwd’命令的实际PuTTY日志文件,然后在使用cat查看时启用了所有会话输出时更正为’pwd’.
注意:这与上面完全相同的日志文件.这也是我希望能够搜索的确切可见输出和格式.
$cat 20151112.170457.log =~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2015.11.12 17:04:57 =~=~=~=~=~=~=~=~=~=~=~= Using username "root". Authenticating with public key "ssh2_rsa_2048_private_key_20111128.ppk" [root@eye ~]# pwd /root [root@eye ~]# exit logout $
我需要解决的真正问题:
如何以编程方式翻译,转换或更新这些日志文件的内容,以便它们只显示在使用PuTTY会话日志记录中启用了所有会话输出的cat命令处理日志文件后用户实际可见的内容?
为了记录,我花了不少时间研究和测试可能的解决方案.我尝试的东西没有适当(或根本没有):
>将stdout直接重定向到名为test.log的新文件. test.log与原始日志文件相同.没有好处.
06003
>安装xclip并将cat输出重定向到xclip. xclip程序抱怨因为我没有X11支持.没工作.没有好处.
06004
>使用内置的Windows剪辑命令.我运行此命令时没有操作系统的投诉,但它有以下两个问题.
>没有以编程方式从Windows剪贴板中获取数据
>即使我可以获取数据,剪贴板内容也与原始日志文件相同(使用ESC代码).没有好处.
>我有一台Mac和我读过的其他一些帖子建议使用pbcopy,但我怀疑它与Windows上的’clip’有什么不同.
>我知道并使用较少的-R和较少的-r来允许处理终端颜色ESC代码(使用-R)和所有ESC代码(使用-r),但是,这仅仅有助于向用户呈现和如果我犯了错误并在按Enter键之前更正了它,则不允许以编程方式搜索命令pwd的数百个日志文件.
>我也和同事谈过.没有好处. 原文链接:https://www.f2er.com/bash/385447.html