需要下载ganymed-ssh2-262.jar

  1. package ganymed;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7.  
  8. import ch.ethz.ssh2.Connection;
  9. import ch.ethz.ssh2.Session;
  10. import ch.ethz.ssh2.StreamGobbler;
  11.  
  12. public class SShUtil {
  13. public static String execShellScript(String host, String username,
  14. String password,
  15.  
  16. String cmd, int port) throws IOException {
  17.  
  18. System.out.println(("running SSH cmd [" + cmd + "]"));
  19. Connection connection = null;
  20.  
  21. Session sess = null;
  22.  
  23. InputStream stdout = null;
  24.  
  25. BufferedReader br = null;
  26.  
  27. StringBuffer buffer = new StringBuffer("exec result:");
  28. buffer.append(System.getProperty("line.separator"));// 换行
  29. try {
  30.  
  31. connection = new Connection(host, port);
  32. connection.connect();
  33.  
  34. if (!connection.authenticateWithPassword(username, password)) {
  35. throw new RuntimeException("authenticateWithPassword failed");
  36. }
  37.  
  38. sess = connection.openSession();
  39.  
  40. sess.execCommand(cmd);
  41.  
  42. stdout = new StreamGobbler(sess.getStdout());
  43.  
  44. br = new BufferedReader(new InputStreamReader(stdout));
  45.  
  46. while (true) {
  47. String line = br.readLine();
  48. if (line == null) {
  49. break;
  50. }
  51. buffer.append(line);
  52. buffer.append(System.getProperty("line.separator"));// 换行
  53. System.out.println(line);
  54. }
  55.  
  56. } finally {
  57. if(br != null){
  58. br.close();
  59. }
  60. if(sess != null){
  61. sess.close();
  62. }
  63. if(connection != null){
  64. connection.close();
  65. }
  66. }
  67.  
  68. return buffer.toString();
  69.  
  70. }
  71.  
  72. public static void main(String[] args) {
  73. String cmd = "cd /usr/local/mysql/bin&&./ndb_mgm -e show";
  74. try {
  75. String info = execShellScript("192.168.1.240", "root", "test",cmd,22);
  76. } catch (IOException e) {
  77. e.printStackTrace();
  78. }
  79.  
  80. }
  81.  
  82. }

ganymedssh2 java执行linux命令的更多相关文章

  1. Java 执行linux命令(转)

    转自 http://blog.csdn.net/a19881029/article/details/8063758 java程序中要执行linux命令主要依赖2个类:Process和Runtime 首 ...

  2. java执行linux命令的工具类

    package com.starfast.common.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ja ...

  3. java执行linux命令

    package com.gtstar.collector; import java.io.BufferedReader;import java.io.IOException;import java.i ...

  4. java 执行linux命令

    原文地址: http://blog.csdn.net/xh16319/article/details/17302947 package scut.cs.cwh; import java.io.Inpu ...

  5. Java程序执行Linux命令

    Java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个 ...

  6. 利用java实现可远程执行linux命令的小工具

    在linux的脚本中,如果不对机器做其他的处理,不能实现在linux的机器上执行命令.为了解决这个问题,写了个小工具来解决这个问题. 后面的代码是利用java实现的可远程执行linux命令的小工具,代 ...

  7. java执行cmd命令和linux命令

    文章出处http://blog.csdn.net/xh16319/article/details/17302947 一:window下执行cmd指定 一:window下执行cmd指定 程序例子: [j ...

  8. Java程序执行Linux命令(JSP运行其他程序)

    java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个 ...

  9. Java调用Linux命令执行

    调用方式 Java调用linux命令执行的方式有两种,一种是直接调用linux命令,一种是将linux命令写到.sh脚本中,然后调用脚本执行. 详细说明 直接调用:使用java中lang包下面的Run ...

随机推荐

  1. poj2429 GCD & LCM Inverse

    用miller_rabin 和 pollard_rho对大数因式分解,再用dfs寻找答案即可. http://poj.org/problem?id=2429 #include <cstdio&g ...

  2. recv send 阻塞和非阻塞

    http://blog.csdn.net/xiaofei0859/article/details/6037814 int send( SOCKET s, const char FAR *buf, in ...

  3. LINUX 产生PPM 驱动例子

    APP: //author:DriverMonkey //phone:13410905075 //mail:bookworepeng@Hotmail.com //qq:196568501 #inclu ...

  4. C#实现中国天气网XML接口测试

    点击链接查看中国天气网接口说明,最近想研究一下接口测试,源于最近一次和某公司的技术总监(交大校友)谈话,发现接口测试的需求是比较大的,于是想要研究一下. 好不容易在网上找到了一个关于中国天气网的接口说 ...

  5. (3)redis队列功能

    Redis队列功能介绍 List 常用命令: Blpop删除,并获得该列表中的第一元素,或阻塞,直到有一个可用 Brpop删除,并获得该列表中的最后一个元素,或阻塞,直到有一个可用 Brpoplpus ...

  6. web错误

    “/Web”应用程序中的服务器错误. 服务器 'LD-PC' 上的 MSDTC 不可用. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误 ...

  7. dubbo源码之四——服务发布二

    dubbo版本:2.5.4 2. 服务提供者暴露一个服务的详细过程 上图是服务提供者暴露服务的主过程: 首先ServiceConfig类拿到对外提供服务的实际类ref(如:HelloWorldImpl ...

  8. sqlite中的自增主键

    http://stackoverflow.com/questions/8519936/sqlite-autoincrement-primary-key-questions I'm not sure w ...

  9. python 内建函数功能函数 abs() coerce() divmod() round() pow()

    >>> abs(-1)1>>> abs(10.)  10.0>>> abs(1.2-2.1j)2.4186773244895647>> ...

  10. dup2()函数的使用,

    #define STR "xiamanman\n"#define STR_LEN 10#define STDOUT 1 #include <stdio.h>#inclu ...