登录可读的plink输出(从sshlog输出中删除数据包信息)

时间:2019-07-26 23:30:28

标签: putty plink

我正在使用plink.exe登录到远程ssh会话,以使用批处理脚本执行某些任务。对于我来说,在屏幕上的日志文件中获取这些命令的输出也是非常重要的。

我尝试使用通常的批处理方式,即“ plink服务器名-m cmd.txt> logfile.log”,但是问题是它不会在运行批处理脚本的Windows终端上显示它。

然后,我找到了plink的-sshlog选项。这样就可以完成工作,即我可以在屏幕上和日志文件中生成输出,但是结果如下:

00000f90 56 4c 41 4e 2a 2a 0d 0a 20 65 6e 63 61 70 73 75 VLAN ** .. encapsu   00000fa0 6c 61 74 69 6f 6e 20 64 6f 74 31 51 20 34 30 34关系点1Q 404   00000fb0 0d 0a 20 69 70 20 61 64 64 72 65 73 73 20 31 30 .. ip地址10   00000fc0 2e 37 31 2e 31 39 31 2e 31 34 35 20 32 35 35 2e .71.191.145 255。

我的实际输出开始于以上文本中的“ VLAN ** .. encapsu”。输出具有这些我不需要的“ 00000010 74 65 72 ...” bla bla字符。加上主要输出(如果我以交互方式使用plink时将显示的内容是“文字包装”的,看起来很恐怖,这使得普通用户很难理解

有什么方法可以防止plink在日志文件中输出不需要的“ sshlog”字符?还是在批处理脚本中的plink / putty会话中还有其他方法可以在屏幕上显示输出并同时记录失败?

我尝试了-sshlog和-sshrawlog,但是输出相同。还根据文档尝试了-sessionlog,但是它不起作用!

我也尝试了> file.txt,但是它给出了一个空文件!

预期结果: 封装dot1Q 404 ip地址10.71.191.145

1 个答案:

答案 0 :(得分:0)

Plink中没有命令行开关,仅记录可读输出。

在运行Plink之前,您必须在Windows注册表中配置“可打印输出”日志记录。


但是还有其他选择。
参见Displaying Windows command prompt output and redirecting it to a file

因此,这应该可以满足您的需求:

powershell "plink -batch servername -m cmd.txt | tee logfile.log"