Java使用ganymed工具包执行LINUX命令教程
Posted xyhero
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java使用ganymed工具包执行LINUX命令教程相关的知识,希望对你有一定的参考价值。
了解更多开发技巧,请访问,架构师小跟班官网:https://www.jiagou1216.com
package com.jiagou;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* ganymed简单教程Demo,第一步:引入jar包
* <dependency>
* <groupId>ch.ethz.ganymed</groupId>
* <artifactId>ganymed-ssh2</artifactId>
* <version>262</version>
* </dependency>
*/
public class GanymedDemo {
//命令集
private static List<String> commands = null;
private static void initCommands() {
commands = new ArrayList<String>();
//查看token.conf文件内容
commands.add("cat /usr/local/websockify/token/token.conf");
//追加文本到token.conf文件
commands.add("echo jiagou1216.com >> /usr/local/websockify/token/token.conf");
}
public static void main(String[] args) {
//第二步:连接Linux服务器
String hostName = "192.168.1.75";
String userName = "root";
String password = "admin@123";
try {
//连接服务器
Connection conn = new Connection(hostName);
conn.connect();
boolean isAuthenticated = conn.authenticateWithPassword(userName, password);
if (!isAuthenticated) {
throw new IOException("Authentication failed.");
}
//初始化命令参数
initCommands();
//第三步:执行shell命令
StringBuffer details = new StringBuffer();
for (String command : commands) {
Session sess = conn.openSession();
sess.execCommand(command);
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true) {
String line = br.readLine();
if (line == null) {
break;
}
details.append(line + " ");//换行
}
System.out.println(details);
}
conn.close();
} catch (IOException e) {
e.printStackTrace(System.err);
}
}
}
以上是关于Java使用ganymed工具包执行LINUX命令教程的主要内容,如果未能解决你的问题,请参考以下文章
Java利用 ganymed-ssh2-build.jar来上传文件到linux以及下载linux文件以及执行linux shell命令