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服务器相关推荐

  1. Java——通过Java代码连接ftp服务器

    作者专注于Java.架构.Linux.小程序.爬虫.自动化等技术. 工作期间含泪整理出一些资料,微信搜索[javaUp],回复 [java][黑客][爬虫][小程序][面试]等关键字免费获取资料.技术 ...

  2. java远程执行功能_Java远程连接Linux服务器并执行命令及上传文件功能

    Java远程连接Linux服务器并执行命令及上传文件功能 发布于 2020-3-6| 复制链接 摘记:  最近再开发中遇到需要将文件上传到Linux服务器上,至此整理代码笔记.此种连接方法中有考虑到并 ...

  3. winscp用密钥连接linux服务器和java程序用密钥连接服务器

    一.winscp用密钥连接linux服务器 第一步,生成ssh公钥密钥对: 使用Tera Term登录进服务器(这时候先用用户名和密码登录), #ssh-keygen -t rsa cd进入进入/ro ...

  4. java连接linux服务器执行shell命令(框架分析+推荐)

    java连接linux服务器执行shell命令(框架分析+推荐) 一.分类+连接方式 程序打成jar包,在本地服务器上执行shell命令.这种使用MyRuntimeUtil工具类 java程序远程li ...

  5. 怎么在Linux中telnet服务器,怎么利用Telnet连接Linux服务器

    利用Telnet连接Linux服务器需要确保:windows客户端开启telnet功能.linux服务器开启telnet服务 首先,linux服务器开启telnet服务: 许多Linux系统在默认情况 ...

  6. Pycharm连接Linux服务器进行远程开发

    Pycharm连接Linux服务器进行远程开发 1.电脑创建空文件夹并用Pycharm打开 2.Pycharm配置Deployment 3.配置SFTP 验证可成功连接 4.配置项Linux项目路径 ...

  7. python连接linux服务器并使用命令_python基于paramiko模块实现远程连接Linux虚拟机(服务器)并执行指定命令返回输出结果...

    对于开发者来说,windows是我们接触最多的操作系统了,但是Linux是我们必不可少的一项重要技能,很多服务或者应用都需要在Linux下运行,掌握Linux系统的基本使用也是非常重要的,今天有一个需 ...

  8. Python ssh连接Linux服务器报Incompatible ssh peer (no acceptable kex algorithm) 解决方法

    Python ssh连接Linux服务器报Incompatible ssh peer (no acceptable kex algorithm) 解决方法 参考文章: (1)Python ssh连接L ...

  9. Python 技术篇 - 通过paramiko库判断连接linux服务器的账号密码是否正确方法演示

    AuthenticationException 错误类型就表示连接 linux 服务器的账号或密码错误. # -*- coding: UTF8 -*- import paramiko from par ...

最新文章

  1. Python-OpenCV学习--USB摄像头读取图像上下翻转
  2. UDP对应的应用层协议之DHCP协议
  3. you have mixed tabs and spaces fix this
  4. linux ssh yum升级_Linux 运维必备的 13 款实用工具,拿好了
  5. 理论基础 —— 索引 —— 稠密索引
  6. java 任务池_多线程的应用-异步任务线程池的简单实现
  7. android sdk 文档导读之前传:初涉
  8. 通过ResNet-50进行面部表情识别(易懂)
  9. Exchange2003 备份与还原
  10. linux系统 ghost,Linux下用GHOST来做系统备份
  11. Qt 之字体设置(QFont)详解
  12. Python图片按比例缩放后的宽和高(PIL等比缩放)
  13. httpcore系列(一)初识httpcore
  14. 基于html + css + js完成淘宝网首页效果
  15. go分析和kegg分析_一些GO及KEGG分析的知识
  16. 语音服务器搭建,教你自建团队语音服务器
  17. 解决Chrome浏览器变慢
  18. H5移动端页面设计的基础规范
  19. UICollectionViewCell复用时修改子页面属性出现混乱的解决方法
  20. favicon自动获取_wordpress网站友情链接页面使用DNSPod自动获取网站favicon图标教程...

热门文章

  1. 【翻译phaser2.0教程】【1】社区游戏开发例子-幸运转盘
  2. 一个准大龄女程序员的婚姻线
  3. “好人综合症”是一种心理疾病
  4. mysql mvcc 原理详解
  5. Android 音乐播放器的开发教程(二)反编译apk ----- 小达
  6. 文件多线程下载的原理与代码展示
  7. 把树莓派改造成无线网卡(3)-----共享无线网络,无线网络转换成有线网络,让有线网络设备连上无线网络
  8. FSCapture截图小工具和注册码
  9. 210326,天顺风能,粤 水 电,弘宇股份股价波动
  10. android 背景色动画,Android利用动画实现背景逐渐变暗