2014-09-09 3 views
0

Я пытаюсь отправить несколько команд на устройство с использованием библиотеки SSHJ. Существует возможность отправки нескольких команд в этом формате:Отправка нескольких команд на устройство через SSH

Command command = sshSession.exec("show line; show ip interface brief;"); 

Это работает, но это не всегда использовать в моем случае. Я нашел другие предложения, такие как второй ответ here.

При попытке это предложение первая команда работает нормально, а затем она циклов между этой ошибки:

net.schmizz.sshj.connection.ConnectionException: Broken transport; encountered EOF 
... 
Caused by: net.schmizz.sshj.transport.TransportException: Broken transport; encountered EOF 

или

Exception in thread "main" java.lang.IllegalStateException: Not connected 
at net.schmizz.sshj.SSHClient.checkConnected(SSHClient.java:713) 
at net.schmizz.sshj.SSHClient.startSession(SSHClient.java:651) 

Код используется:

sshSession = sshClient.startSession(); 
Command command = sshSession.exec("sho ip int brie"); 
System.out.println(IOUtils.readFully(command.getInputStream()));//Just to see the reply while testing 
command.join(5, TimeUnit.SECONDS); 

sshSession = sshClient.startSession(); 
Command command2 = sshSession.exec("sho line"); 
System.out.println(IOUtils.readFully(command2.getInputStream()));//Just to see the reply while testing 

обратите внимание, если необходимо, устройство, к которому я подключаюсь, и большинство устройств, к которым он будет подключаться, - это Cisco networ король.

Благодарим за помощь. -Jarrod

ответ

0

Никогда не нашли разрешения для конкретной проблемы. Но я работал над проблемой, используя DefaultPTY и предоставляя свои собственные потоки со всеми данными, которые я хотел отправить. Играя с примером this.

+0

Можете ли вы опубликовать соответствующие части кода, который сработал? – golimar

Смежные вопросы