java 远程执行Linux命令

625 阅读1分钟

pom文件中引入jar包

  <dependency>
      <groupId>ch.ethz.ganymed</groupId>
      <artifactId>ganymed-ssh2</artifactId>
      <version>build210</version>
  </dependency>

java

        Connection conn = new Connection("192.168.1.1");
        Session sess=null;
        try {
            conn.connect();
            boolean isAuthenticated = conn.authenticateWithPassword("linux账号", "linux密码");
            if (isAuthenticated == false){
                throw new IOException(SmartoNetTipsMessage.NginxNotFound.getZhText());
            }
            sess = conn.openSession();
            sess.execCommand("last");
            InputStream stdout = new StreamGobbler(sess.getStdout());
            BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
            System.out.println("ExitCode: " + sess.getExitStatus());
            sess.close();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(conn!=null){
                conn.close();
            }
            if(sess!=null){
                sess.close();
            }
        }