通过IRC的SSH客户端输出

时间:2015-05-27 13:20:48

标签: java linux ssh irc

我目前正在开发一个用Raspberry Pi运行的Java小机器人。这些Raspberry Pi连接到我的一个朋友运行的一些商店的DSL路由器。目的是监控他的商店中的不同事物,如正常运行时间,客户正常运行时间等,使用nmap。

我使用PircBot实现了IRC客户端。

此外,我使用Jsch作为我的SSH客户端。我已经跟随其中一个示例SSH客户端在Java控制台中获取shell输出。

现在,我想做的是,用JircBot的sendMessage()方法输出它。我的Jsch客户端截至目前使用channel.setOutPutStream(System.out)

如何让Jsch通过JircBot的sendMessage()输出?

PS:SSH客户端在本地连接,甚至可能有更智能的方法在Raspberry Pi上执行命令,而不是在本地使用SSH,并通过PircBot输出shell?

亲切的问候

1 个答案:

答案 0 :(得分:0)

如果您只是尝试运行本地命令,则无需使用SSH。我建议您查看Apache commons-exec libraries,这样您就可以在Rasperry Pi上运行命令,而无需验证开销并建立安全连接。

在您的情况下,您可以使用它将消息中继到PircBot API:

Executor ex = new DefaultExecutor();
ex.setStreamHandler(new PumpStreamHandler(new LogOutputStream() {
    @Override
    protected void processLine(String line, int level) {
        // Call PircBot's sendMessage() passing line
    }
}));
int exitValue = ex.execute("command to execute locally");