我试图使用jsch连接到远程交换机,运行一些命令并提取输出。
我能够使用连接到开关,但是命令输出在输入流中不可用。也许我做得不对。这是密码
session = jsch.getSession("user", "10.0.0.0", 22);
session.setPassword("somepwd");
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
System.out.println("connected to remote host");
Channel channel = session.openChannel("shell");
OutputStream ops = channel.getOutputStream();
PrintStream ps = new PrintStream(ops);
channel.connect();
ps.println("show version");
ps.flush();
ps.close();
InputStream in=channel.getInputStream();
byte[] bt=new byte[1024];
while(in.available()>0)
{
int i=in.read(bt, 0, 1024);
if(i<0)
break;
String str=new String(bt, 0, i);
//displays the output of the command executed.
System.out.print(str);
}
channel.disconnect();
session.disconnect();
当我调试inputStream时。isAvailable()始终返回零,表示该命令没有输出。
蒂亚!
请尝试下面的代码-测试和工作
Channel channel = session.openChannel("shell");
OutputStream ops = channel.getOutputStream();
PrintStream ps = new PrintStream(ops);
channel.connect();
ps.println("pwd");
ps.println("exit");
ps.flush();
ps.close();
InputStream in = channel.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
System.out.println("Opening...");
String jarOutput;
while ((jarOutput = reader.readLine()) != null)
System.out.println(jarOutput);
reader.close();
channel.disconnect();
输出-
开场白
user@host:~
问题内容: 我正在编写一项服务,该服务必须将已执行命令的输出流式传输到父级和日志中。当过程很长时,问题是给我最终的(字符串)结果。 是否可以给出正在发生的事情的部分输出,例如在shell中 PS仅输出将是: 但就我而言,这还不够。 问题答案: 您发布的代码有效(执行了合理的命令)。 这是用Go语言编写的一个简单的 “长时间运行的任务” ,供您调用和测试您的代码: 编译它并作为命令来调用它。您将看到
问题内容: 我遇到了一个困扰我几天的问题。我在Python 2.7.10中使用了Paramiko模块,我想向Brocade路由器发出多个命令,但仅返回给定命令之一的输出,如下所示: 如果要打印完整的输出,它将包含发布到路由器的所有内容,但是我只想查看show命令的输出。 谁能解决这个问题? 我想问的最后一件事。我想过滤变量并检查是否出现诸如“ up”或“ down”之类的字符串,但是由于输出中的所
所有的, 请指导我,如何在dos窗口中打印下面命令的o/p?由于不熟悉dos命令,我不知道下面的字符串是什么意思? 提前谢谢
我想使用OpenNLP来标记泰语单词。我下载了OpenNLP和Thai tokenize模型,并运行了以下程序 我将下载的放在我调用的目录中并运行以下内容。在中包含此文本。但是,我得到的输出只有这些文本: 我对OpenNLP非常陌生,如果有人知道如何从中获取输出,请告诉我。
问题内容: 在Python中,通过而不是打扰其输出来调用命令的最短和标准方法是什么。 我尝试了,但是似乎返回了输出。我对此并不感到烦恼,我只需要在不使输出混乱的情况下静默运行程序即可。 如果有帮助,我正在打电话给我,我的意图只是打电话给我。 问题答案: p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
现在,你已经在运用 MATLAB 的命令行了,输入命令语句,就会看到结果出现在命令窗口中。 这一节介绍如何: 控制输出值的格式 用MATLAB命令隐藏输出 在命令行中输入长的命令 编辑命令行