java - 通过 IRC 的 SSH 客户端输出

标签 java linux ssh irc

我目前正在用 Java 开发一个小型机器人,并在 Raspberry Pi 上运行。这些 Raspberry Pi 连接到我 friend 经营的一些商店中的 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?

亲切的问候

最佳答案

如果您只是尝试运行本地命令,则无需使用 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");

关于java - 通过 IRC 的 SSH 客户端输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30483745/

相关文章:

java - RxJava2 : How to wait all Flowables in a list to finish?

linux - 使用 gnuplot 将页面附加到现有的 Postscript 文件

javascript - 通过 Web 浏览器的 SSH 隧道

docker - 如果从 docker 容器启动,SSH 端口转发将断开连接

java - java中是否有最简单的reduce/fold方法?

java - JDBC 池连接验证

linux - 如何启动 QGIS?

ssh - 无法通过 SSH 连接到服务器

java - 如何在数学表中打印随机数?

linux - 如何使用 sas 或 linux 分隔文件中的句点和复制行?