java链接linux服务器,命令操作
2024-08-28 04:09:56
1.本地读取linux文件,即在Windows上链接外部linux
package com.common.utils; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List; import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler; public class SSHUtil { private final static String host = "00.000.000.000"; //linux的外网ip
private final static int port = 22; //linux端口号,xftp链接linux是所用的端口
private final static String username = "user"; //用户账号
private final static String password = "pwd"; //密码private static SSHUtil ftp = new SSHUtil();
private static Connection con = new Connection(host, port); public static List<String> execCom(String command) {
Session session = ftp.session();
BufferedReader br = null;
List<String> msgList=new ArrayList<String>();
try {
session.requestPTY("vt100", 80, 24, 640, 480, null);
session.execCommand(command);
System.out.println("ExitCode: " + session.getExitStatus());
InputStream stdout = new StreamGobbler(session.getStdout());
br = new BufferedReader(new InputStreamReader(stdout));
while (true) {
String line = br.readLine();
System.out.println(line);
if (line == null) {
break;
}
msgList.add(line);
}
} catch (IOException e) {
e.printStackTrace();
}
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
session.close();
con.close();
return msgList;
} public Session session() {
Session session = null;
try {
con.connect(); con.authenticateWithPassword(username, password);
session = con.openSession();
} catch (IOException e) {
e.printStackTrace();
return null;
}
return session;
} }
2.linux服务器中的项目读取linux文件
package comcommon.utils; import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.ArrayList;
import java.util.List; public class RunTimeUtil {
private static LogUtil logger = new LogUtil(RunTimeUtil.class); public static List<String> execCom(String cmd) throws IOException, InterruptedException {
List<String> msgList=new ArrayList<String>();
try {
Process process = Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", cmd});//执行命令 InputStreamReader ir = new InputStreamReader(process.getInputStream());
LineNumberReader input = new LineNumberReader(ir); String line;
while ((line = input.readLine()) != null) {//输出结果
msgList.add(line);
}
} catch (java.io.IOException e) {
logger.info("IOException " + e.getMessage());//捕捉异常
}
return msgList;
}
}
然后调取execCom("所需命令");
最新文章
- css实现文本溢出显示...
- JavaScript实现输入验证(简单的用户注册)
- The first day to learn Englisht
- [译] 企业级 OpenStack 的六大需求(第 1 部分):API 高可用、管理和安全
- ssh配置文件ssh_config和sshd_config区别
- android bitmap的放大缩小
- hdu4389 X mod f(x)
- SET UPDATE TASK LOCAL
- 服务器time_wait状态原因
- php 5.3+ 连接mssql
- 前端总结&#183;基础篇&#183;JS(三)arguments、callee、call、apply、bind及函数封装和构造函数
- pm2进阶使用
- select下拉框的探索(<;option>;<;/option>;标签中能嵌套使用其它标签吗)
- js 骂人不带脏字 (!(~+[]) + {})[--[~+";";][+[]] * [~+[]] + ~~!+[]] + ({} + [])[[~!+[]] * ~+[]] 图解
- 纯代码系列:Python实现验证码图片(PIL库经典用法用法,爬虫12306思路)
- django os.environ慎用setdefault操作环境变量!
- Angular中通过$location获取地址栏的参数详解
- vue+webpack开发(三)
- mac下配置android环境变量
- Handler,Looper,HandlerThread浅析
热门文章
- iOS 9 平台上 AFNetworking 框架 3.0 版本号解决的问题和问题解决
- C++学习笔记22,普通函数重载(1)
- poj 3662 Telephone Lines(最短路+二分)
- C Looooops(扩展欧几里得+模线性方程)
- C/C++中输入多组数据方法
- 使用Github做服务器展示前端页面
- 2-bitmap
- S - New Year Transportation
- Spring Boot (10) mybatis三种动态sql
- .net core2.0 读取appsettings.json