Java代码连接Linux服务器
pom导入依赖
<!--SSH远程连接-->
<dependency><groupId>ch.ethz.ganymed</groupId><artifactId>ganymed-ssh2</artifactId><version>build210</version>
</dependency>
java代码
public class TestUseSSH{public static void main(String[] args) {//ip地址String host = "8.214.91.200";//端口号int port = 22;//用户名String userName = "root";//密码String password = "Dou123456."; //密钥文件String privateKeyFile = " ";Connection sshConnection = getSSHConnection(host, port, userName, password, privateKeyFile);} /*** 建立与服务器的连接* @param host 服务器IP String host = "192.168.178.1";* @param port 端口 int port = 22;(默认的,直接用即可)* @param userName 登录服务器的用户名(work)* @param password 登录服务器的密码(为空就行)* @param privateKeyFile 与服务器公钥对应的私钥文件 String pubkeypath = "src/main/resources/sshkey/id_rsa";* @return 返回登录的连接, 在使用的最后一定记得关闭connect资源* @throws IOException*/public static Connection getSSHConnection(String host, int port, String userName, String password, String privateKeyFile) throws IOException {Connection connection = new Connection(host, port);connection.connect();File file = new File(privateKeyFile);boolean b = connection.authenticateWithPublicKey(userName, file, password);if (b){return connection;}else {System.out.println("登录连接失败,请检查用户名、密码、私钥文件");return null;}}/*** 获取指定log文件的指定关键字的日志信息* @param connection SSH的连接* @param logFile 需要读取的log文件 全路径 /opt/dubbo_server/risk-server-provider-xjd/logs/server-info.log* @param key 关键字 例如 节点3150调用策略引擎开始* @param timeKey 時間关键字 例如 09-21 14:42:1* @return 返回需要的日志信息行 如果有多天日志信息满足条件,只返回最后一天日志信息* @throws IOException*/public static String getLogInfo(Connection connection, String logFile, String key, String timeKey) throws IOException {String cmd = "tail -1000 " + logFile + " | grep '" + key + "'" + " | grep '" + timeKey + "'";System.out.println("====cmd===" + cmd);// "tail -1000 /opt/dubbo_server/risk-server-provider-xjd/logs/server-info.log | grep '节点3150调用策略引擎开始,' | grep '09-21 14:42:1'";Session session = connection.openSession();session.execCommand(cmd);//执行shell命令//处理获取的shell命令的输出信息InputStream stdout = session.getStdout();InputStreamReader inputStreamReader = new InputStreamReader(stdout);BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String s = bufferedReader.readLine();String lastLineLog = null;System.out.println("==========以下是获取日志的全部信息============");while(s != null){if (s != null){lastLineLog = s;System.out.println(s);}s = bufferedReader.readLine();}System.out.println("==========以上是获取日志的全部信息============");System.out.println("========以下是日志的最后一行数据=======");System.out.println(lastLineLog);//最后关闭session资源if (session != null){session.close();}return lastLineLog;}
}
Java代码连接Linux服务器相关推荐
- Java——通过Java代码连接ftp服务器
作者专注于Java.架构.Linux.小程序.爬虫.自动化等技术. 工作期间含泪整理出一些资料,微信搜索[javaUp],回复 [java][黑客][爬虫][小程序][面试]等关键字免费获取资料.技术 ...
- java远程执行功能_Java远程连接Linux服务器并执行命令及上传文件功能
Java远程连接Linux服务器并执行命令及上传文件功能 发布于 2020-3-6| 复制链接 摘记: 最近再开发中遇到需要将文件上传到Linux服务器上,至此整理代码笔记.此种连接方法中有考虑到并 ...
- winscp用密钥连接linux服务器和java程序用密钥连接服务器
一.winscp用密钥连接linux服务器 第一步,生成ssh公钥密钥对: 使用Tera Term登录进服务器(这时候先用用户名和密码登录), #ssh-keygen -t rsa cd进入进入/ro ...
- java连接linux服务器执行shell命令(框架分析+推荐)
java连接linux服务器执行shell命令(框架分析+推荐) 一.分类+连接方式 程序打成jar包,在本地服务器上执行shell命令.这种使用MyRuntimeUtil工具类 java程序远程li ...
- 怎么在Linux中telnet服务器,怎么利用Telnet连接Linux服务器
利用Telnet连接Linux服务器需要确保:windows客户端开启telnet功能.linux服务器开启telnet服务 首先,linux服务器开启telnet服务: 许多Linux系统在默认情况 ...
- Pycharm连接Linux服务器进行远程开发
Pycharm连接Linux服务器进行远程开发 1.电脑创建空文件夹并用Pycharm打开 2.Pycharm配置Deployment 3.配置SFTP 验证可成功连接 4.配置项Linux项目路径 ...
- python连接linux服务器并使用命令_python基于paramiko模块实现远程连接Linux虚拟机(服务器)并执行指定命令返回输出结果...
对于开发者来说,windows是我们接触最多的操作系统了,但是Linux是我们必不可少的一项重要技能,很多服务或者应用都需要在Linux下运行,掌握Linux系统的基本使用也是非常重要的,今天有一个需 ...
- Python ssh连接Linux服务器报Incompatible ssh peer (no acceptable kex algorithm) 解决方法
Python ssh连接Linux服务器报Incompatible ssh peer (no acceptable kex algorithm) 解决方法 参考文章: (1)Python ssh连接L ...
- Python 技术篇 - 通过paramiko库判断连接linux服务器的账号密码是否正确方法演示
AuthenticationException 错误类型就表示连接 linux 服务器的账号或密码错误. # -*- coding: UTF8 -*- import paramiko from par ...
最新文章
- Python-OpenCV学习--USB摄像头读取图像上下翻转
- UDP对应的应用层协议之DHCP协议
- you have mixed tabs and spaces fix this
- linux ssh yum升级_Linux 运维必备的 13 款实用工具,拿好了
- 理论基础 —— 索引 —— 稠密索引
- java 任务池_多线程的应用-异步任务线程池的简单实现
- android sdk 文档导读之前传:初涉
- 通过ResNet-50进行面部表情识别(易懂)
- Exchange2003 备份与还原
- linux系统 ghost,Linux下用GHOST来做系统备份
- Qt 之字体设置(QFont)详解
- Python图片按比例缩放后的宽和高(PIL等比缩放)
- httpcore系列(一)初识httpcore
- 基于html + css + js完成淘宝网首页效果
- go分析和kegg分析_一些GO及KEGG分析的知识
- 语音服务器搭建,教你自建团队语音服务器
- 解决Chrome浏览器变慢
- H5移动端页面设计的基础规范
- UICollectionViewCell复用时修改子页面属性出现混乱的解决方法
- favicon自动获取_wordpress网站友情链接页面使用DNSPod自动获取网站favicon图标教程...
热门文章
- 【翻译phaser2.0教程】【1】社区游戏开发例子-幸运转盘
- 一个准大龄女程序员的婚姻线
- “好人综合症”是一种心理疾病
- mysql mvcc 原理详解
- Android 音乐播放器的开发教程(二)反编译apk ----- 小达
- 文件多线程下载的原理与代码展示
- 把树莓派改造成无线网卡(3)-----共享无线网络,无线网络转换成有线网络,让有线网络设备连上无线网络
- FSCapture截图小工具和注册码
- 210326,天顺风能,粤 水 电,弘宇股份股价波动
- android 背景色动画,Android利用动画实现背景逐渐变暗