执行远程LINUX服务器的Shell脚本。
package javaoperation;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import java.util.Properties;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
/**
*
* @auther
* @date
* @desc
* @since
*/
public class RunRemteShell02 {
public static void main(String[] args) throws Exception {
JSch jsch = new JSch();
String userName = "root";
String password = "tgb5YHN6";
String host = "10.11.13.211";
int port = 22;
// String cmd = "cat /data/hello.txt";
String remoteShellScript = "/work/shell/df.sh";
Session session = jsch.getSession(userName, host, port);
session.setPassword(password);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
int timeout = 60000000;
session.setTimeout(timeout);
session.connect();
ChannelExec channelExec = (ChannelExec) session.openChannel("exec");
channelExec.setCommand("sh " + remoteShellScript);
//channelExec.setCommand("mkdir -p /software/test");
//ChannelExec channelExec = (ChannelExec) session.openChannel("exec");
//channelExec.setCommand(cmd2);
//channelExec.setCommand(cmd3);
channelExec.setInputStream(null);
channelExec.setErrStream(System.err);
channelExec.connect();
InputStream in = channelExec.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in, Charset.forName("UTF-8")));
String buf = null;
StringBuffer sb = new StringBuffer();
while ((buf = reader.readLine()) != null) {
sb.append(buf);
System.out.println(buf);
}
reader.close();
channelExec.disconnect();
if (null != session) {
session.disconnect();
}
}
}