java链接linux服务器,命令操作
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("所需命令");
java链接linux服务器,命令操作的更多相关文章
- linux学习(2):linux服务器常用操作和命令
linux服务器常用操作和命令 目录 1. 什么是linux服务器load average?2. 如何查看linux服务器负载3. 服务器负载高怎么办?4. 如何查看服务器内存使用率?5. 如何查看单 ...
- Go连接到Linux服务器进行操作-执行shell命令&&上传文件
Go连接到Linux服务器进行操作 使用密码连接Linux服务器 package main import ( "fmt" "golang.org/x/crypto/ssh ...
- Linux服务器命令行模式安装Matlab2014a
Linux服务器命令行模式安装Matlab2014a,有需要的朋友可以参考下. 0.下载安装包 下载Matlab2014a for Linux安装包的ISO镜像文件(感谢万能的度娘)以及破解包(下载地 ...
- mac电脑iTerm2链接linux服务器断线解决方案
问题 用windows链接linux服务器,方式很多,我最经常用的是xshell.但是xshell没有mac版,那用mac电脑,比较好的命令行软件是什么呢?我用的是iTerm2 ,这个功能确实蛮强大, ...
- linux的命令操作
linux的命令操作 1.日常操作命令 **查看当前所在的工作目录pwd **查看当前系统的时间 date **查看有谁在线(哪些人登陆到了服务器)who 查看当前在线last 查看最近的登陆历史记录 ...
- linux服务器常用操作和命令
1. 什么是linux服务器load average? Load是用来度量服务器工作量的大小,即计算机cpu任务执行队列的长度,值越大,表明包括正在运行和待运行的进程数越多.参考资料:http://e ...
- 在windows上通过ssh远程链接linux服务器[转]
本文分别转自 [http://jingyan.baidu.com/article/6d704a130de40e28db51cab5.html] [http://www.cnblogs.com/mliu ...
- Linux服务器命令大全
快捷提示键: table 查看文件夹: ls , ls –all ,ls –l,ll 进入某个文件夹: cd usr/local 回到root 目录 : cd /root/ 回到根目录:cd / 回 ...
- 常用Linux 服务器命令--各种性能指标命令
如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个专业的 Linux 系统管理员. 监控命令## iostat### iostat命令用来显示存储系统的 ...
随机推荐
- Codeforces Round #250 Div. 2(C.The Child and Toy)
题目例如以下: C. The Child and Toy time limit per test 1 second memory limit per test 256 megabytes input ...
- Catalyst 2960 and 2960-S Software -Configuring VTP
http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst2960/software/release/12-2_53_se/configura ...
- python统计ES存储空间占用的代码
import os from os.path import join, getsize def get_dir_size(dir, suffix_filter=None): size = 0L if ...
- Codeforces Round #402 D(二分)
D. String Game ...
- 电脑升级win10后visio的问题
上周由于电脑意外蓝屏,系统从win7升级到了win10,昨天工作写文档时才发现缺少画图的工具,于是按照了visio2013,在编辑设计图时发现,一旦用visio打开或编辑图后再到word里设计图的内容 ...
- BZOJ 4810 莫队+bitset
思路: 看完这道题根本没有思路啊.... 然后我就膜拜了一波题解... 这神tm乱搞思路 维护两个bitset 第一个bitset代表当前区间哪些数出现过 第二个bitset是 maxp-p出现过 差 ...
- HDU 4474 Yet Another Multiple Problem BFS
题意:求m的倍数中不包含一些数码的最小倍数数码是多少.比如15 ,不包含0 1 3,答案是45. BFS过程:用b[]记录可用的数码.设一棵树,树根为-1.树根的孩子是所有可用的数码,孩子的孩子也是 ...
- springmvc 中将MultipartFile转为file,springboot 注入CommonsMultipartResolver
第一种方法: MultipartFile file = xxx; CommonsMultipartFile cf= (CommonsMultipartFile)file; DiskFileItem f ...
- 【转】Postman接口测试之POST、GET请求方法
转自竹小冉: https://www.cnblogs.com/zhuxr/p/9009708.html 一.基础知识 1.HTTP的五种请求方法:GET, POST ,HEAD,OPTIONS, PU ...
- [转]深入javascript——原型链和继承
在上一篇post中,介绍了原型的概念,了解到在javascript中构造函数.原型对象.实例三个好基友之间的关系:每一个构造函数都有一个“守护神”——原型对象,原型对象心里面也存着一个构造函数的“位置 ...