2015-05-27 4 views
-1

В настоящее время я разрабатываю небольшой бот на Java, который я запускаю из Raspberry Pi. Эти малины Pi подключены к DSL-маршрутизаторам в некоторых магазинах, которые мой друг работает. Цель состоит в том, чтобы отслеживать разные вещи в его магазинах, например, время безотказной работы, время работы клиента и т. Д., Используя nmap для одного.Выход клиента SSH через IRC

Я внедрил клиент IRC, используя PircBot.

Кроме того, я использовал Jsch в качестве моего SSH-клиента. Я пошел за одним из примеров SSH-клиентов, чтобы получить вывод оболочки в консоли Java.

Теперь, что я хочу сделать, это вывести это в методе sendMessage() от JircBot. Мой клиент Jsch использует channel.setOutPutStream(System.out).

Как получить Jsch для вывода через sendMessage() через JircBot?

PS: Клиент SSH подключается локально, возможно, даже более разумные способы выполнения команд на малине Pi вместо локального использования SSH и вывода оболочки через PircBot?

Сердечные приветы

ответ

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"); 
Смежные вопросы