通过 IRC 的 SSH 客户端输出
SSH client output over IRC
我目前正在 Java 开发一个小型机器人,我 运行 来自 Raspberry Pi。这些 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 ?
亲切的问候
如果您只是尝试 运行 本地命令,则无需使用 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 开发一个小型机器人,我 运行 来自 Raspberry Pi。这些 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 ?
亲切的问候
如果您只是尝试 运行 本地命令,则无需使用 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");