通过java代码连接linux服务器执行命令
package com.lt.common.utils.bussinesUtils;
import java.io.IOException;
import java.io.InputStream;
import com.jcraft.jsch.*;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
public class SSHLinuxUtil {
public static void main(String[] args) throws IOException, JSchException {
String command = "ll";//linux 命令
String res = exeCommand(command);
System.out.println(res);
}
public static String exeCommand(String command) {
String host = "127.0.0.1";//你的服务器ip
int port = 22;//ssh端口
String user = "root";// 用户名
String password = "";// 密码
Session session = getSession(host, port, user, password);
ChannelExec channelExec = null;
String out = "";
try {
channelExec = (ChannelExec) session.openChannel("exec");
InputStream in = channelExec.getInputStream();
channelExec.setCommand(command);
InputStream errOut= channelExec.getErrStream();
channelExec.connect();
out = IOUtils.toString(in, "UTF-8");
if(StringUtils.isBlank(out)){
out=IOUtils.toString(errOut, "UTF-8");
}
} catch (JSchException e) {
out = e.getLocalizedMessage();
} catch (IOException e) {
} finally {
channelExec.disconnect();
session.disconnect();
}
return out;
}
private static Session getSession(String host, int port, String user, String password) {
Session session = null;
try {
JSch jsch = new JSch();
session = jsch.getSession(user, host, port);
session.setConfig("StrictHostKeyChecking", "no");
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setPassword(password);
session.connect();
} catch (JSchException e) {
e.printStackTrace();
}
return session;
}
}