`

java使用ganymed-ssh2执行linux操作系统命令

 
阅读更多

public static void main(String[] args) {

InputStream msgStream;

BufferedReader buffer;

String line;

Connection conn = new Connection("远程主机地址");

Session session = null;

try {

   conn.connect();

   conn.authenticateWithPassword("root", "      ");

   session = conn.openSession();

//这里使用&&连接多条命令可以解决其中一条命令执行失败后,立即返回失败的状态。而不是根据最后一条命令执行的结果返回状态。

   session.execCommand("cd /home/slg&&ls");

   session.waitForCondition(ChannelCondition.EXIT_STATUS, 1000);

   System.out.println(session.getExitStatus());

   msgStream = new SequenceInputStream(session.getStdout(),

   session.getStderr());

   buffer = new BufferedReader(new InputStreamReader(msgStream));

   try {

while ((line = buffer.readLine()) != null) {

   System.out.println(line);

}

   } catch (IOException e) {

e.printStackTrace();

   } finally {

try {

   buffer.close();

   msgStream.close();

} catch (IOException e) {

   e.printStackTrace();

}

   }

   session.close();

   session = conn.openSession();

//通过这种方式可以模拟Shell窗口

   session.requestDumbPTY();

   session.startShell();

   PrintWriter pw = new PrintWriter(session.getStdin());

   pw.println("cd /home/slg");

   pw.println("ls");

   pw.close();

   msgStream = session.getStdout();

   buffer = new BufferedReader(new InputStreamReader(msgStream));

   try {

while ((line = buffer.readLine()) != null) {

   System.out.println(line);

}

   } catch (IOException e) {

e.printStackTrace();

   } finally {

try {

   buffer.close();

   msgStream.close();

} catch (IOException e) {

   e.printStackTrace();

}

   }

   session.close();

   conn.close();

} catch (Exception e) {

   e.printStackTrace();

}

    }

分享到:
评论

相关推荐

    Java(通过ganymed-ssh2-build210.jar)实现SSH远程连接linux终端

    Java通过ganymed-ssh2-build210.jar库实现SSH远程连接Linux终端是一个常见的应用场景,主要用于自动化运维、系统管理或者开发过程中需要与Linux服务器交互的场景。ganymed-ssh2-build210.jar是Java的一个开源SSH库,...

    ganymed-ssh2-build210

    在Java开发中,Ganymed SSH-2库提供了一套完整的API,使开发者能够轻松地集成SSH功能到他们的应用程序中。这个库不仅支持SSH连接,还包含了对SFTP(Secure File Transfer Protocol)的支持,使得在客户端和服务器...

    ssh协议依赖jar包:ganymed-ssh2-build

    在实际应用中,Ganymed SSH-2库广泛应用于自动化运维脚本、远程系统管理工具、持续集成/持续部署(CI/CD)流程以及任何需要安全远程访问的Java项目中。由于其强大的功能和易于使用的API,它成为了Java开发者实现SSH...

    ganymed-ssh2.rar

    总的来说,这个压缩包提供了一整套工具,让开发者能够利用Java在他们的应用程序中实现SSH2功能,无论是连接到Linux服务器,执行远程命令,还是进行安全的数据传输。通过深入研究源码、参考文档并实践示例,开发者...

    ganymed-ssh2-build210.jar

    综上所述,“ganymed-ssh2-build210.jar”是一个强大的Java库,它允许开发人员通过SSH协议安全地远程操控Linux服务器,执行系统命令、传输文件,并获取命令执行的结果。使用这个库,开发者可以构建各种自动化工具,...

    java上传文件到linux服务器,操作linux服务器上文件,下载linux服务器文件,删除linux服务器文件

    Linux服务器是一种基于Linux操作系统并提供网络服务的计算机系统,而Java作为一种跨平台的编程语言,能够通过SSH(Secure Shell)协议与Linux服务器进行通信。SSH是一种安全的网络协议,用于在网络中传输命令和数据...

    java调用shell脚本

    在Java编程中,有时我们需要与操作系统进行交互,执行一些系统级别的任务,比如调用Shell脚本。这在处理自动化任务、远程服务器管理或系统集成时非常常见。在给定的资源中,我们可以看到如何在Java中实现这个功能,...

    java shh2连接

    总的来说,ganymed-ssh2库为Java开发者提供了一种高效且安全的方式来实现远程Linux服务器的SSH2连接和命令执行。理解并掌握这些基本概念和API使用,能够帮助我们构建可靠的远程管理工具或集成到更复杂的应用系统中。

    远程shell调用.rar

    在这个项目中,开发者使用了Ganymed SSH2库,这是一个开源的Java实现,支持SSH2协议的全部功能,包括文件传输、命令执行和端口转发等。文件“ganymed-ssh2-build210.jar”就是这个库的特定版本,用于构建SSH连接并...

    javaconlinux

    在Java中,有一种名为Ganymed SSH-2的开源库,它实现了SSH2协议,使得Java应用程序可以使用SSH连接到Linux服务器。在提供的压缩包文件中,`ganymed-ssh2-build210`很可能就是这个库的jar包。通过Ganymed SSH-2库,...

    Ganymed实现自动化部署接口

    Ganymed是一款开源的SSH2库,它允许Java开发者通过SSH协议与远程服务器进行交互。这个库的主要功能包括安全的远程登录、文件传输、命令执行等,为自动化部署提供了便利。在“Ganymed实现自动化部署接口”这一主题中...

    scp操作大全

    **SCP(Secure Copy)操作大全** SCP是一种在Unix-like系统(包括Linux)和Apple macOS上广泛使用的命令行工具,用于安全地在本地主机...同时,了解如何在Java程序中使用SSH2库,可以进一步提升自动化任务的执行效率。

    Java连接Linux服务器过程分析(附代码)

    总的来说,Java通过`ganymed-ssh2`库与Linux服务器建立SSH连接,涉及的主要步骤包括设置公钥认证、编写连接代码以及进行远程操作。理解这些步骤对于进行Java自动化运维工作至关重要,能有效提升工作效率。希望本文...

    开发常用jar2

    这种文件格式是跨平台的,意味着它们可以在任何支持Java的系统上运行,不论是在Windows、Linux还是Mac OS上。 标题"开发常用jar2"暗示了这个压缩包包含了一系列在Java开发中常用的库或框架的JAR文件。这些库通常是...

Global site tag (gtag.js) - Google Analytics