使用JSCH连接Linux服务器-执行linux命令
2013-04-22 08:18
706 查看
/article/3965973.html
在java中可以使用jsch连接远程Linux服务器,并在服务器上执行传送命令,同时该jar包也可以使用ftp在服务器上上传下载文件,本节讲述如何通过该jar包传送linux命令并且执行:
Java代码
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连接远程Linux服务器,并在服务器上执行传送命令,同时该jar包也可以使用ftp在服务器上上传下载文件,本节讲述如何通过该jar包传送linux命令并且执行:
Java代码
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远程连接linux服务器并执行命令
- java使用ssh连接Linux并执行命令
- java使用ssh连接Linux并执行命令
- linux 下 命令行使用sqlplus 连接oracle执行命令
- java 使用jsch 远程链接linux执行命令
- windows 下 java程序jsch连接远程linux服务器执行shell命令
- java 使用jsch 远程链接linux执行命令
- java 使用jsch 远程链接linux执行命令
- linux 使用java编写ssh登陆主机 输入密码登陆并执行命令(jsch)
- 实现Xshell断开连接情况下Linux命令继续执行
- 使用ln命令在Linux系统中创建连接文件
- Linux下使用Shell命令控制任务Jobs执行
- 使用ln命令在Linux系统中创建连接文件
- Linux下使用popen()执行shell命令
- 采用JSCH实现对linux远程操作(SSH协议),实现在远程linux机器上执行相关的命令
- Linux下使用popen()执行shell命令
- 在android中如何编译连接 .c 的可执行文件 Android点滴(1) -- 执行Linux命令并且获得输出的结果
- linux下命令执行时间统计工具time使用小结
- LINUX使用nohup命令后台执行提交作业