管道自定义ssh控制台的输出

时间:2011-06-05 18:26:16

标签: java bash

我们的产品通过嵌入ssh服务器(基于java)并公开一堆自定义命令来公开管理控制台。其中一些命令的输出可能非常冗长。目前我们通过使用-dump等标志将输出转储到文本文件以供以后处理来处理这些问题。

我想知道是否可以将输出传输到标准的unix实用程序,如grep(非交互式)和更少(交互式),以便用户可以在不离开终端的情况下分析结果。这需要目前只在Linux上工作。

管道到交互式命令似乎几乎是不可能的,但任何远程有用的建议都将受到高度赞赏(并获得赞成)

2 个答案:

答案 0 :(得分:1)

将交互式命令保留在本地主机上,将非交互式命令保留在遥控器上,即

ssh remotehost ls /bin

ssh remotehost cat /var/log/messages | less

less命令在本地运行,除非您将其包含在引号中:

ssh remotehost "cat /var/log/messages | less"

答案 1 :(得分:1)

我会做一个这样的包装脚本:

#!/bin/bash
# filename: custom-command
/usr/bin/java /path/to/custom-command.java $@ | less