微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

命令行界面 – 如何以编程方式将putty日志转换为人类可读,可搜索的文件?

背景:
我有一个 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的数百个日志文件.
>我也和同事谈过.没有好处.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐