在java中可以使用jsch连接远程Linux服务器,并在服务器上执行传送命令,同时该jar包也可以使用ftp在服务器上上传下载文件,本节讲述如何通过该jar包传送linux命令并且执行:
package com.aliyun.utility.jsch;
import java.io.InputStream;
import java.util.Properties;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class JSCHUtil {
private static JSCHUtil instance;
public static JSCHUtil getInstance() {
if (instance == null) {
instance = new JSCHUtil();
}
return instance;
}
private JSCHUtil() {
}
private Session getSession(String host, int port, String ueseName)
throws Exception {
JSch jsch = new JSch();
Session session = jsch.getSession(ueseName, host, port);
return session;
}
public Session connect(String host, int port, String ueseName,
String password) throws Exception {
Session session = getSession(host, port, ueseName);
session.setPassword(password);
Properties config = new Properties();
config.setProperty("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
return session;
}
public String execCmd(Session session, String command) throws Exception {
if (session == null) {
throw new RuntimeException("Session is null!");
}
ChannelExec exec = (ChannelExec) session.openChannel("exec");
InputStream in = exec.getInputStream();
byte[] b = new byte[1024];
exec.setCommand(command);
exec.connect();
StringBuffer buffer = new StringBuffer();
while (in.read(b) > 0) {
buffer.append(new String(b));
}
exec.disconnect();
return buffer.toString();
}
public void clear(Session session) {
if (session != null && session.isConnected()) {
session.disconnect();
session = null;
}
}
public static void main(String[] args) throws Exception {
Session session = JSCHUtil.getInstance().connect("10.9.9.135", 22,
"yy", "yy");
String cmd = "cd /" + ";" + "ls -al |grep home";
String result = JSCHUtil.getInstance().execCmd(session, cmd);// 多条命令之间以;分隔
System.out.println(result);
System.exit(0);
}
}
分享到:
相关推荐
Java使用JSCH(Java Secure Channel)库连接远程服务器是一个常见的任务,特别是在自动化运维、文件传输或者执行远程命令等场景中。JSCH是一个纯Java实现的SSH2库,它提供了连接到支持SSH协议的服务器的能力,如...
`jsch-0.1.55.jar` 是一个Java库,主要用于实现SSH(Secure Shell)协议,它允许Java应用程序在远程Linux服务器上进行安全的登录和命令执行。SSH是一种网络协议,用于加密网络通信,确保数据传输的安全性,广泛应用...
总结来说,JSCH提供了一种灵活且强大的方式,允许Java开发者在远程Linux服务器上执行命令,这对于自动化运维、监控或者数据处理等场景非常有用。但同时,也需要注意相应的安全措施,以避免潜在的安全风险。
总的来说,Java通过JSch库远程登录Linux服务器并执行命令,是Java与Linux系统交互的一种常用方式,尤其适用于自动化运维和脚本化的任务。通过理解并实践这些代码,你将能够更好地理解和掌握Java进行远程操作的能力。
对于"工具"标签,我们可以理解为使用现成的工具库,如Apache Commons Exec或Spring的Shell Executor,它们可以简化命令执行的过程。例如,Apache Commons Exec提供了一个方便的API来执行本地或远程命令,而Spring的...
此外,由于JSch支持shell命令执行,因此还可以扩展到执行远程系统的各种管理任务。 **使用步骤** 1. **添加依赖**:首先,将`jsch-0.1.55.jar`文件添加到项目类路径中,如果是Maven或Gradle项目,需要在相应的构建...
* 使用JSch库连接Linux服务器,需要使用Session和ChannelSftp两个类,Session用来建立连接,ChannelSftp用来执行命令和上传文件。 * 在连接服务器时,需要设置用户名称、密码、端口号等参数,并设置...
4. 在Java中,通过JSch库连接到SFTP服务器时,需要先建立一个JSch对象,然后创建一个Session(会话),并设置Session的配置属性。 5. 接着通过Session对象获取一个Channel(通道),并打开SFTP通道。此时可以利用...
在Java编程中,有时我们需要与操作系统进行交互,执行系统级别的命令,例如在控制台执行CMD命令或者通过SSH连接远程Linux服务器执行shell命令。这在自动化脚本、系统管理或者远程监控等场景中非常常见。本篇文章将...
总之,JSCH为Java开发者提供了强大且灵活的SSH功能,通过这个压缩包提供的库、源代码和文档,开发者可以轻松地将SSH连接和相关功能集成到他们的应用程序中,实现与Linux服务器的安全交互。无论是进行远程命令执行、...
JSch是Java Secure Channel的缩写,它是一个纯Java实现的SSH2库,允许Java应用程序连接到支持SSH协议的服务器,进行安全的数据传输。在给定的标题"jsch0.1.55.jar_jsch0.1.53.jar"中,提到了两个不同版本的JSch库...
Linux服务器批处理远程命令执行工具。纯java实现的ssh协议(jsch),支持同时连接多台linux主机,执行相同的命令。只需配置目标主机的ip地址、用户名和密码即可实现远程操作。服务器无需配置ssh对等协议或安装任何...
1. **建立SSH连接**:使用`JSch`类创建一个实例,然后通过`Session.connect()`方法建立到远程服务器的连接。连接参数包括服务器地址、端口、用户名和密码。 ```java JSch jsch = new JSch(); Session session = ...
5. **通道(Channels)**:JSch支持多种类型的SSH通道,如Session Channel(用于执行命令)、DirectTCP/IP Channel(用于端口转发)和Shell Channel(提供一个交互式shell)。 6. **会话管理**:可以创建、管理和...
在IT行业中,Linux服务器...通过理解和应用这些概念,您可以使用Java实现连接到Linux服务器并执行命令的任务,从而提升运维效率和程序的自动化程度。在实际开发过程中,确保遵循最佳实践,以确保系统的稳定性和安全性。
在IT行业中,JavaScript SSH (JSch) 是一个广泛使用的Java库,它允许开发人员通过SSH协议与远程Linux服务器进行交互,包括执行SFTP(Secure File Transfer Protocol)操作。本篇文章将深入探讨JSch如何实现对Linux上...
具体来说,开发者可能使用了Java的SSH(Secure Shell)库,如JSch或者Apache MINA,这些库提供了与远程Linux服务器安全连接并执行命令的能力。 SSH协议是一种在网络上传输数据的安全方式,通常用于远程登录、文件...
版本0.1.46是JSCH的最新版,它提供了丰富的功能,使开发者能够通过SSH协议在Java应用中执行远程操作,如文件传输、命令执行、端口转发等。在UNIX和Linux操作系统上,SSH是一种广泛使用的安全通信协议,用于加密网络...
`jsch-0.1.54` 是一个基于Java的开源库,主要用于实现SSH(Secure Shell)协议,它允许开发者通过Java程序远程连接到Linux服务器,执行命令、传输文件,甚至进行图形界面操作。SSH是一种网络协议,广泛应用于远程...
jsch.jar 常用的java通过代码登录远程linux服务器并执行linux命令需要的jar