求助:关于使用ganymed-ssh2-build210.jar执行多条命令的问题

问题描述

最近碰到一个问题,ganymed-ssh2-build210.jar中可以在一个session里执行多条命令?代码如下:try{ConnectionInfoinfo=conn.connect(null,time_out,0);booleanresult=conn.authenticateWithPassword(username,password);if(result!=false){Sessionsshsession=conn.openSession();for(inti=0;i<commands.size();i++){if(sshsession!=null){sshsession.execCommand(commands.get(i));in=newStreamGobbler(sshsession.getStdout());reader=newBufferedReader(newInputStreamReader(in));Stringresponse=null;while((response=reader.readLine())!=null)builder.append(response+"n");sshsession.waitForCondition(ChannelCondition.EXIT_STATUS|ChannelCondition.CLOSED|ChannelCondition.EOF,time_out);if(sshsession.getExitStatus()==null){break;}}}if(builder.toString().isEmpty()){for(Stringcommand:commands){builder.append(command+":commandnotfoundn");}}}resu=builder.toString();resu=newString(resu.getBytes());returnresu;}catch(IOExceptione){logger.fatal("error",e);returne.getMessage();}finally{if(reader!=null){try{reader.close();in.close();}catch(finalIOExceptione){logger.fatal("error",e);}}conn.close();}这里执行完一条命令后sshsession.getExitStatus()始终为null,导致不能继续执行下一条命令

解决方案

本帖最后由 wenhuifen 于 2012-02-03 14:47:59 编辑
解决方案二:
我也有这样的问题,主要是用来服务器的跳转,不知道怎么弄。期待中。。。。
解决方案三:
楼主,问一个菜鸟级的问题,登录时一直出现connectionrefused是怎么回事啊?我用putty可以连上的。。。
解决方案四:
PrintWriterpw=newPrintWriter(newOutputStreamWriter(sess.getStdin()));pw.write("cd/home");pw.flush();pw.write("pwd");pw.flush();
解决方案五:
引用3楼lhn760865548的回复:

PrintWriterpw=newPrintWriter(newOutputStreamWriter(sess.getStdin()));pw.write("cd/home");pw.flush();pw.write("pwd");pw.flush();

不对啊,这样怎么让它开始执行你所输入的这些命令呢???

时间: 2024-10-24 00:41:00

求助:关于使用ganymed-ssh2-build210.jar执行多条命令的问题的相关文章

docker~run起来之后执行多条命令

最近在搞jenkins pipeline的部署工作,而在对.net core进行部署时不希望安装dotnet sdk,为了移植性更好,打算直接使用aspnetcore的docker镜像,通过docker去run它,而在这个时间出现了一个问题 docker run aspnetcore:2.0之后如果希望同时执行多个sh命令出现了问题,还非要写个脚本文件,这是大叔不喜欢的! docker run aspnetcore:2.0 ls && ls 结果是第一个ls显示的是容器里的内容,而第二个l

ruby下如何执行多条shell命令

问题描述 在ruby代码执行shell命令,我查了很多,但是全部都是起一个子进程执行一条命令就结束了.有没有办法可以执行多条shell命令呢?比如说第一条命令执行一个bat文件,设置环境变量,在环境变量设置好后执行第二条命令. 解决方案 %x{ one.battwo.bat}解决方案二:bat文件 windows 下啊.. 我不知道解决方案三:system "you shell one &"system "you shell two &..."

求助!Java调用批处理文件后无法执行

问题描述 求助!Java调用批处理文件后无法执行 我想用Java调用批处理打开.exe安装包,但是安装包无法打开或者说直接跳过了打开 上面是我的Java代码 执行后没有打开.exe文件!但是我单独打开批处理文件就完全没问题 这是我的批处理文档! 哪位大神帮帮忙啊!!!! 解决方案 java 执行批处理文件window下java执行批处理文件 解决方案二: 既然是执行 cmd ,你的BAT里为什么还要pause? 然后,你的 command = "cmd /c zidong.bat";就

如何利用Ganymed SSH-2模拟SSH操作_java

官方地址:http://www.cleondris.ch/en/opensource-ssh2.php 简介:Ganymed SSH-2 for Java is a library which implements the SSH-2 protocol in pure Java (tested on J2SE 1.4.2 and 5.0). It allows one to connect to SSH servers from within Java programs. It supports

ssh2-【求助】Android与SSH2之间的通信

问题描述 [求助]Android与SSH2之间的通信 Andorid客户端与Web服务器通信(Web服务器用的是SSH2搭建的),数据从客户端到了action(数据正确),action里的biz类竟然是null,然后程序就走不下去了,也不报空指针异常.如果我在aciton 自己new了biz类 在biz处理业务时dao也遇到相同的问题,是个null ,等我同样自己去new dao类时,就在dao里面保存数据时出错(super.getHibernateTemplate().save(user)),

使用Jmeter对Mysql进行压力测试无法执行多条sql语句问题

mysql|问题|语句|执行 执行一条语句可以,多条语句则出错,查询Jmter日志,告知sql语法错误. 后来发现需要allowMultiQueries参数置为true,而且,只有MySQL Connector/J 3.1.1以上版本才支持. 建立连接时设置一下就可以了,如:jdbc:mysql://192.168.3.180/sample?user=root&password=&allowMultiQueries=true 如图:

执行DB2的命令有哪些方式

环境 产品:DB2 UDB 平台:z/OS 版本:v8 问题 执行DB2的命令有哪些方式? 解答 执行DB2命令可以通过如下的方式: 1.通过z/OS的控制台或者z/OS的应用程序,对于包含多个DB2子系统的环境.如果要在特定的一个DB2系统执行DB2命令,需要通过命令前缀的方式,例如:-DSN1 DIS GROUP DETAILS.可以执行所有的DB2命令 2.通过IMS控制台或者应用程序,可以运行除Start DB2之外的所有DB2命令.同样需要特定的命令限定符. 3.通过CICS控制台,可

在Linux命令终端中查看和编辑曾执行过的命令

  history history 命令可以用来显示曾执行过的命令,也可以根据显示的治疗来重新执行需要的命令 n 显示n个最近的记录 -a 添加记录 -r 读取记录,但不会添加内容记录 -w 覆盖原有的history 文件 -c 清除记录 -d<编号>[n] 删除指定n条记录 -n<文件> 读取指定文件 -r<文件> 读取文件但不记录 -w<文件> 覆盖原有文件 例1 代码如下: [root@redhat ~]# history #查看所有执行过的命令 1

代码-哪位大哥帮我看下,for循环执行不了,只能执行一条记录,跪谢。

问题描述 哪位大哥帮我看下,for循环执行不了,只能执行一条记录,跪谢. cust_list.asp页面中的代码如下: function del(){ var num=document.getElementById("ckcount"); if(num.innerHTML=="0") { alert('至少要选择一条记录') } else{ if(confirm('确定要删除该表资料吗?')) { var number=document.getElementById