当前位置:网站首页 > 技术博客 > 正文

java 远程控制



背景

项目需求,需要远程 ssh 登录到某个节点执行 shell 命令来完成任务。对于这种需求,如果不用 java 程序,直接 linux 的 ssh 命令就可以完成,但是在编码到程序中时需要相关的程序包来完成,本文主要介绍在 java 中如何使用 JSch 包实现 ssh 远程连接并执行命令。

JSch 简介

JSch 是Java Secure Channel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。框架jsch很老的框架,更新到2016年,现在也不更新了。

JSch 使用 shell 执行命令,有两种方法

  • ChannelExec: 一次执行一条命令,一般我们用这个就够了。
  • ChannelShell: 可执行多条命令,平时开发用的不多,根据需要来吧;
 
1. ChannelExec
  • 每个命令之间用 ; 隔开。说明:各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。
  • 每个命令之间用 && 隔开。说明:若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功的。
  • 每个命令之间用 || 隔开。说明:|| 是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功一条命令为止。
2. ChannelShell

对于ChannelShell,以输入流的形式,可执行多条指令,这就像在本地计算机上使用交互式shell(它通常用于:交互式使用)。如要要想停止,有两种方式:

  • 发送一个exit命令,告诉程序本次交互结束;
  • 使用字节流中的available方法,来获取数据的总大小,然后循环去读。

使用示例

1. 引入 pom 依赖
 
2. jsch 使用示例

在此封装了一个 Shell 工具类,用来执行 shell 命令,具体使用细节在代码注释中有说明,可以直接拷贝并使用,代码如下:


                            

  • 上一篇: cmd中查看java命令
  • 下一篇: select语句总结
  • 版权声明


    相关文章:

  • cmd中查看java命令2025-03-01 22:29:59
  • 字典树实现2025-03-01 22:29:59
  • js文件引入另一个js文件2025-03-01 22:29:59
  • 召回率和精确率的关系2025-03-01 22:29:59
  • bootstrap按钮图标2025-03-01 22:29:59
  • select语句总结2025-03-01 22:29:59
  • sqlsugar5.02025-03-01 22:29:59
  • dns的传输协议2025-03-01 22:29:59
  • 完全二叉树是什么2025-03-01 22:29:59
  • 指针函数和函数指针的用法2025-03-01 22:29:59