连接Linux服务器并实现命令
1.首先准备一个Linux上的一个脚本,用于连接上后进行访问
mkdir /usr/local/tmp/test/shell //在Linux上创建一个存放临时文件的位置
vim testForJava //创建一个文本 里边写入脚本
echo "如果能看到这条消息说明你成功了" //这就是写入的脚本
2.然后到Java中创建一个maven工程
先引入依赖文件
<dependency>
<groupId>ch.ethz.ganymed</groupId>
<artifactId>ganymed-ssh2</artifactId>
<version>build210</version>
</dependency>
这个依赖是用于连接linux的
然后编写代码去访问对应路径的脚本文件
public class TestUseSSh {
private static String ip="你的服务器ip地址";
private static int port = 22;
private static String user = "你服务器的用户名";
private static String password = "你服务器的密码";
public static void main(String[] args) {
try {
//先创建一个连接,传入IP地址和端口
Connection conn = new Connection(ip,port);
conn.connect();
//然后传入用户名密码
boolean b = conn.authenticateWithPassword(user, password);
if(b==false){
throw new IOException("连接失败!");
}
//需要连接 首先先创建一个通话
Session session = conn.openSession();
//然后输入需要执行的命令 这里的命令是去触发我们写的脚本的
session.execCommand("sh /usr/local/tmp/test/shell/testForJava");
//然后将返回的结果转化为输入流对象
InputStream stdout = new StreamGobbler(session.getStdout());
//然后将流对象读取出来
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true){
String line = br.readLine();
if(line == null){
break;
}
//打印到控制台
System.out.println(line);
}
//关闭会话和连接
session.close();
conn.close();
} catch (IOException e) {
e.printStackTrace();
//退出
System.exit(2);
}
}
}