命令行界面 – 如何以编程方式将putty日志转换为人类可读,可搜索
背景:
我有一个 Windows 7工作站,并使用PuTTY连接到 Linux服务器,并启用了会话日志记录.我以前使用过Printable输出选项,但是它没有转义字符的好处,但是如果我使用tab自动完成或退格,我输入的命令是不可搜索的,因为我在输入命令时更正了一个拼写错误(或3) . 注意:我安装了cygwin以获得额外的命令行工具支持(即grep,find等). 最近,我不得不回过头来找一些命令,直接与同事一起设置关于服务器上发生的事情的记录,并且无法查看我发出的最终命令是有问题的,这使得搜索日志以及更加困难更容易证明我的同事究竟发生了什么. 示例#1: 注意:在这种情况下,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: $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: 注意:这与上面完全相同的日志文件.这也是我希望能够搜索的确切可见输出和格式. $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 $ 我需要解决的真正问题: 为了记录,我花了不少时间研究和测试可能的解决方案.我尝试的东西没有适当(或根本没有): >将stdout直接重定向到名为test.log的新文件. test.log与原始日志文件相同.没有好处.
>安装xclip并将cat输出重定向到xclip. xclip程序抱怨因为我没有X11支持.没工作.没有好处.
>使用内置的Windows剪辑命令.我运行此命令时没有操作系统的投诉,但它有以下两个问题. >没有以编程方式从Windows剪贴板中获取数据 >我有一台Mac和我读过的其他一些帖子建议使用pbcopy,但我怀疑它与Windows上的’clip’有什么不同. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |