2015-05-27 96 views
-1

我目前正在從Raspberry Pi運行Java開發一個小型機器人。這些Raspberry Pi的連接到我的朋友運行的一些商店中的DSL路由器。目的是監視他店鋪中的不同事物,例如正常運行時間,客戶端正常運行時間等,使用nmap作爲其中一個。通過IRC的SSH客戶端輸出

我已經使用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

如果您只是試圖運行本地命令,則不需要使用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");