采用JSCH实现对linux远程操作,执行简单的命令
发布时间:2020-05-24 19:22:20 所属栏目:Java 来源:互联网
导读:采用JSCH实现对linux远程操作,执行简单的命令
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 JSch是Java Secure Channel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
public class JSchDemo {
private String charset = "UTF-8"; // 设置编码格式
private String user; // 用户名
private String passwd; // 登录密码
private String host; // 主机IP
private JSch jsch;
private Session session;
/**
*
* @param user用户名
* @param passwd密码
* @param host主机IP
*/
public JSchDemo(String user,String passwd,String host) {
this.user = user;
this.passwd = passwd;
this.host = host;
}
/**
* 连接到指定的IP
*
* @throws JSchException
*/
public void connect() throws JSchException {
jsch = new JSch();
session = jsch.getSession(user,host,22);
session.setPassword(passwd);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking","no");
session.setConfig(config);
session.connect();
}
/**
* 执行相关的命令
*/
public void execCmd() {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String command = "";
BufferedReader reader = null;
Channel channel = null;
try {
while ((command = br.readLine()) != null) {
channel = session.openChannel("exec");
((ChannelExec) channel).setCommand(command);
channel.setInputStream(null);
((ChannelExec) channel).setErrStream(System.err);
channel.connect();
InputStream in = channel.getInputStream();
reader = new BufferedReader(new InputStreamReader(in,Charset.forName(charset)));
String buf = null;
while ((buf = reader.readLine()) != null) {
System.out.println(buf);
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (JSchException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
channel.disconnect();
session.disconnect();
}
}
public static void main(String[] args) throws Exception {
String user = "root";
String passwd = "123456";
String host = "192.168.1.188";
JSchDemo demo = new JSchDemo(user,passwd,host);
demo.connect();
demo.execCmd();
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- rx-java – groupBy运算符,来自不同组的项交错
- java – HTTPClient 4.1中包含文件和字符串的多部分POST
- 如何在java中减少图像文件的大小
- java – HttpClient发布进度和MultipartEntityBuilder
- java – ThreadLocal线程安全吗?
- java – 使用BlockingQueue的PDF文件下载
- java – 我可以使用hibernate本机SQL查询删除表
- Java编程swing组件JLabel详解以及使用示例
- Java Spring Boot:我正在尝试将CacheControl标头添加到Res
- java – JVM超过用-Xmx定义的最大内存
