我目前正在开发一个用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?
亲切的问候
答案 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");