`
lovejing007
  • 浏览: 95755 次
社区版块
存档分类
最新评论

java通过SSH连linux运行shell ,解压linux上的压缩包

    博客分类:
  • J2EE
阅读更多

在写代码前请下载:ganymed-ssh2-build210.jar

package gany;

import ch.ethz.ssh2.ChannelCondition;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
/****
*
* @author mym
*
*/
public class mymGany {
public static void main(String args[]) {
try {
Connection connection = new Connection("192.168.32.200");// 创建一个连接实例
connection.connect();// Now connect
boolean isAuthenticated = connection.authenticateWithPassword("root", "123456");// Authenticate
if (isAuthenticated == false)throw new IOException("user and password error");
Session sess = connection.openSession();// Create a session
System.out.println("start exec command.......");
sess.requestPTY("bash");
sess.startShell();
InputStream stdout = new StreamGobbler(sess.getStdout());
InputStream stderr = new StreamGobbler(sess.getStderr());
BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout));
BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr));
PrintWriter out = new PrintWriter(sess.getStdin());
out.println("cd /root/mym");
out.println("ll");
out.println("tar -zxvf mysql-5.0.87-linux-i686-glibc23.tar.gz");
out.println("ll");
out.println("exit");
out.close();
sess.waitForCondition(ChannelCondition.CLOSED|ChannelCondition.EOF | ChannelCondition.EXIT_STATUS,30000);
System.out.println("下面是从stdout输出:");
while (true) {
String line = stdoutReader.readLine();
if (line == null)break;
System.out.println(line);
}
System.out.println("下面是从stderr输出:");
while (true) {
String line = stderrReader.readLine();
if (line == null)break;
System.out.println(line);
}
System.out.println("ExitCode: " + sess.getExitStatus());
sess.close();/* Close this session */
connection.close();/* Close the connection */

} catch (IOException e) {
e.printStackTrace(System.err);
System.exit(2);
}
}
}
/*****
* 总结使用步骤:
*
* 1.首先构造一个连接器,传入一个需要登陆的ip地址 Connection conn = new Connection(ipAddr);
* conn.connect(); // 连接
*
*
* 2.模拟登陆目的服务器 传入用户名和密码 , boolean isAuthenticated =
* conn.authenticateWithPassword(username, password);它会返回一个布尔值,true
* 代表成功登陆目的服务器,否则登陆失败
*
* 3.打开一个session,有点象Hibernate的session ,执行你需要的linux 脚本命令 。 Session sess =
* conn.openSession(); sess.execCommand("last");
*
* 4.接收目标服务器上的控制台返回结果,读取br中的内容 InputStream stdout = new
* StreamGobbler(sess.getStdout()); BufferedReader br = new BufferedReader(new
* InputStreamReader(stdout));
*
* 5.得到脚本运行成功与否的标志 :0-成功 非0-失败 System.out.println("ExitCode: " +
* sess.getExitStatus());
*
* 6.关闭session和connection sess.close(); conn.close();
*
* 需要说明的是:
* 1.通过第2步认证成功后,当前目录就位于/home/username/目录之下,你可以指定脚本文件所在的绝对路径,或者通过cd导航到脚本文件所在的目录
* ,然后传递执行脚本所需要的参数,完成脚本调用执行。
*
* 2.执行脚本以后,可以获取脚本执行的结果文本,需要对这些文本进行正确编码后返回给客户端,避免乱码产生。
*
* 3.如果你需要执行多个linux控制台脚本,比如第一个脚本的返回结果是第二个脚本的入参,你必须打开多个Session,也就是多次调用 Session
* sess = conn.openSession();,使用完毕记得关闭就可以了
*******/

分享到:
评论

相关推荐

    使用Java向服务器上传文件压缩包并实现解压缩

    在这个场景中,我们关注的是如何使用Java来实现文件压缩包的上传以及在服务器上的解压缩。Java作为一种强大的编程语言,提供了丰富的库来支持这样的操作,特别是在涉及到SFTP(Secure File Transfer Protocol)时,...

    内含:jdk-8u131-linux-x64.tar.gz , linux 配置JDK的方法说明

    - **Linux JDK**:Java Development Kit在Linux上的版本,提供编译、运行Java程序所需的工具和库。 - **Xshell**:是Windows下的远程终端软件,方便开发者管理Linux服务器。 7. **注意事项**: - 安装路径需根据...

    jdk-8u291-linux-x64.tar.gz

    Java Development Kit(JDK)是Java编程语言的软件开发工具包,它包含了编译、调试、运行Java程序所需的...通过以上步骤,开发者可以在Linux服务器上建立一个功能完备的Java开发环境,利用JDK 1.8的特性进行高效编程。

    (SecureCRT)Tomcat工程发布到linux系统上

    在IT行业中,Linux系统因其稳定性和安全性而广泛用于服务器部署,Tomcat作为一款流行的Java Servlet容器,常被用来运行Java Web应用。对于初学者来说,理解如何将Tomcat工程发布到Linux系统上是非常重要的技能。这里...

    Linux+JDK+Tomcat+Oracle

    通过这些工具,可以轻松地在本地机器上通过SSH连接到远程的Linux服务器,执行各种管理操作,如查看系统状态、上传文件、执行Shell命令等。 总之,“Linux+JDK+Tomcat+Oracle”的组合为企业级Java Web应用程序提供了...

    Termux和JDK安装包

    Termux是一款基于Android的Linux环境应用,它允许用户在手机或平板电脑上运行终端模拟器,进而安装和使用各种Linux命令行工具、编程环境以及服务器软件。在Android设备上,Termux提供了一种轻量级的方式去探索和操作...

    Linux系统基础开发配置

    在安装Linux系统之后,我们通常通过SSH(Secure Shell)访问远程服务器。SSH是一种安全协议,用于在不安全的网络中为计算机之间提供安全的加密通信。与Windows系统的远程桌面访问不同,Linux系统远程访问仅支持...

    jdk-8u221-linux-x64.tar.gz以及安装步骤

    在进行安装之前,我们需要了解JDK(Java Development Kit)的重要性,它是开发和运行Java应用程序的基础,包含了Java编译器、Java虚拟机(JVM)、类库和其他工具。 首先,我们需要将`jdk-8u221-linux-x64.tar.gz`...

    windows环境下怎么发布javaWeb项目到linux环境下

    在Windows环境下,你可以使用`scp`(Secure Copy)命令通过SSH(Secure SHell)协议将WAR文件传输到Linux服务器。首先,确保在Windows上安装了PuTTY或类似工具,该工具通常包含`plink.exe`(用于命令行的SSH连接)...

    linux服务器部署项目,jdk安装包

    SSH(Secure Shell)是一种网络协议,用于安全地在远程主机上执行命令。你可以使用PuTTY或Xshell等工具进行SSH连接。文件传输通常使用SCP或SFTP协议,例如使用WinSCP工具。在服务器上,要熟悉基本的Linux命令行操作...

    ssh所需包2(共2个)

    SSH,全称Secure Shell,是一种网络协议,用于在不安全的网络环境中提供安全的远程登录和其他服务。在IT行业中,SSH被广泛应用于服务器管理、自动化任务执行、文件传输等领域,尤其是在Linux和Unix-like系统中。它...

    Linux中文使用指南

    在Linux上安装Tomcat,首先需要安装Java运行环境(JRE),然后下载Tomcat压缩包,解压到指定目录。配置环境变量`CATALINA_HOME`指向Tomcat安装路径,通过`bin/startup.sh`启动服务,`shutdown.sh`关闭服务。在Tomcat...

    阿里云Linux服务器配置及问题解决.docx

    在Windows上,首先确保已经安装了SSH工具,可以通过在命令行输入`ssh -V`来检查。如果没有安装,需要下载并安装OpenSSH。然后使用`ssh root@[ipaddress]`命令连接服务器,这里的`ipaddress`替换为ECS服务器的公网IP...

    xshell5解压即用

    用户只需要下载Xshell5的压缩包,解压后即可直接运行,无需复杂的安装步骤。这种便携式设计使得Xshell5能在任何支持的操作系统环境下快速投入使用,无论是办公室还是外出携带,都显得极为方便。 总的来说,Xshell5...

    hadoop和ssh的配置安装

    SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。在Hadoop集群中,SSH主要用于节点间的安全通信。下面介绍如何在Ubuntu 11.10系统上安装和配置SSH服务端和客户端: 1. **安装SSH服务端**: 在...

    SSH2整合小案例

    SSH2整合小案例主要涉及到的是Secure Shell (SSH) 协议的第二版,这是一个用于在网络设备之间提供安全通信的协议。SSH2常用于远程登录、命令执行、文件传输等,尤其在Linux和Unix系统中广泛使用。在这个小案例中,...

    xshell6免安装版(密码:123456).zip

    而Java是一种跨平台的编程语言,开发者经常需要在Linux系统中编译、运行和调试Java程序,xShell通过提供SSH协议的连接,可以使得这一过程更为流畅,同时它的复制粘贴功能、颜色高亮等特性也能提升开发效率。...

    Liux下JAVA环境的配置

    1. **登录Linux系统**:使用SSH或者直接在Linux服务器上操作。 2. **上传下载的JDK文件**:可以通过FTP等方式将下载好的JDK文件上传到Linux服务器。 3. **使用RPM命令安装JDK**:打开终端,切换到JDK文件所在目录,...

    Linux下安装TomCat.md

    ### Linux下安装TomCat #### 一、简介 在Linux环境下部署Java Web应用程序时,Apache Tomcat是一个常用的...通过以上步骤,您可以成功地在Linux系统上安装并配置TomCat服务器,为部署Java Web应用打下良好的基础。

    sqljdbc4-4.0.jar

    总结来说,这个压缩包提供了在Java环境中连接SQL Server数据库的JDBC驱动,以及一个便携版的SSH终端工具Xshell,使得用户可以在任何有Java环境的电脑上安全地管理和操作远程服务器。对于需要进行数据库操作和远程...

Global site tag (gtag.js) - Google Analytics