关于ganymed-ssh2版本262和build210的SCPClient类的区别
ganymed-ssh2是通过java使用ssh连接服务器的工具库,先上两个版本的pom文件配置:
<!--ssh连接linux-->
<!-- https://mvnrepository.com/artifact/ch.ethz.ganymed/ganymed-ssh2 -->
<dependency>
<groupId>ch.ethz.ganymed</groupId>
<artifactId>ganymed-ssh2</artifactId>
<version>build210</version>
</dependency>
<!--ssh连接linux-->
<!-- https://mvnrepository.com/artifact/ch.ethz.ganymed/ganymed-ssh2 -->
<dependency>
<groupId>ch.ethz.ganymed</groupId>
<artifactId>ganymed-ssh2</artifactId>
<version>262</version>
</dependency>
网络上大部分人使用的还是build210版本,本人之前使用262版本,无奈不想自己写文件上传下载代码,改用了build210版。
这是build210的SCPClient包括的方法,其中包括了文件的下载(get)、文件的上传(put)使用起来直接调用非常方便:
262版本的SCPClient相比build210缺少了许多方法,只能够从服务器get文件,但是put方法还需要搭配其他类使用,无法直接上传文件服务器,可能是将相应的功能移去了其他模块:
下面是build210版文件上传、下载案例:
public class ScpOpt {
static String ip = "127.0.0.2";
static String LiuxUser = "root";
static String LiuxPawd = "xxxx";
public static void downloadFile() {
Connection conn = new Connection(ip);
Session session = null;// 打开一个会话
try {
conn.connect();//建立连接
boolean login = conn.authenticateWithPassword(LiuxUser, LiuxPawd);//根据用户名密码,进行校验
if (login) {
System.out.println("登录成功");
} else {
System.out.println("登录失败");
}
SCPClient scpClient = conn.createSCPClient();
//从远程机器获取文件
scpClient.get("远程文件/root/docker-install.sh", "本地文件夹");
conn.close();
session.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void uploadFile() {
Connection conn = new Connection(ip);
try {
//建立连接
conn.connect();
//根据用户名密码,进行校验
boolean login = conn.authenticateWithPassword(LiuxUser, LiuxPawd);
if (login) {
System.out.println("登录成功");
} else {
System.out.println("登录失败");
}
SCPClient scpClient = conn.createSCPClient();
//上传文件
scpClient.put("本地文件docker-install.sh", "远程机器目录/root/scp");
conn.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// downloadFile();
uploadFile();
}
}
关于ganymed-ssh2版本262和build210的SCPClient类的区别的更多相关文章
- Ganymed SSH-2 for Java
Ganymed SSH-2 for Java是一个纯Java实现的SHH2库,官网为http://www.ganymed.ethz.ch/ssh2/,最新的更新时间为2006年10月,在用之前,请仔细 ...
- Django 2.1版本与Django 1.8.3的一些区别(转)
Django 2.1版本与Django 1.8.3的一些区别 我在刚开始学习的时候使用的Django版本是1.8.3的,后来在安装其它软件的时候,可能需要2.1的版本,自动帮我更新了Djang ...
- linux 版本中 i386/i686/x86-64/pcc 等的区别
在查看dpdk官方文档的时候,发现有 这样(kernel - devel.x86_64; kernel - devel.ppc64:glibc.i686)这样的安装包信息,收集了点资料来分析这三者的关 ...
- PHP版本中的VC6,VC9,VC11,TS,NTS区别
以windows为例,看看下载到得php zip的文件名 php-5.4.4-nts-Win32-VC9-x86.zip VC6:legacy Visual Studio 6 compiler,是使用 ...
- [转]JQuery判断浏览器类型版本1.9和2.0之后的区别
转至:http://zhidao.baidu.com/link?url=Nzk2aSxBKRZKYg9Evqn8hLwMyXTI-4jza-zCAZq4Vd6hWCOHIvuBX6yj8hzDYDrf ...
- 纯JAVA驱动:sqlserver版本不同,驱动与连接也有所区别
纯JAVA驱动:// 2005 版本:驱动:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");连接:”jd ...
- C# 语言规范_版本5.0 (第10章 类)
1. 类 类是一种数据结构,它可以包含数据成员(常量和字段).函数成员(方法.属性.事件.索引器.运算符.实例构造函数.静态构造函数和析构函数)以及嵌套类型.类类型支持继承,继承是一种机制,它使派生类 ...
- 关于ApkTool不同版本在重新打游戏包时候的区别
在工作中由于使用到将游戏CP提供的apk包重新反编译,然后二次签名出包,所以遇到了一个奇怪的bug. 下面是CP提供的apk包,将近358M 但是在重新编译之后,包变成了250M左右的apk包,虽然可 ...
- CentOS下载及版本选择-CentOS LiveCD、LiveDVD和BinDVD区别
1.CentOS系统镜像有两个,安装系统只用到第一个镜像即CentOS-6.x-i386-bin-DVD1.iso(32位)或者CentOS-6.x-x86_64-bin-DVD1.iso(64位), ...
随机推荐
- js事件的一些兼容写法
事件兼容 事件对象的兼容 获取键码兼容 默认行为兼容 阻止事件冒泡兼容 事件监听兼容 ---- 封装 删除事件监听兼容 ---- 封装 事件委托->获取事件源兼容
- 嵌入式Linux内核开发工程师必须掌握的三十道题
如果你能正确回答以下问题并理解相关知识点原理,那么你就可以算得上是基本合格的Linux内核开发工程师. 1. Linux中主要有哪几种内核锁?(进程同步与互斥) (1)自旋锁:非睡眠锁 (2)信号量: ...
- k8s学习-Ingress
4.5.Ingress Ingress-Nginx github 地址:https://github.com/kubernetes/ingress-nginxIngress-Nginx 官方网站:ht ...
- Go语言json编码驼峰转下划线、下划线转驼峰
目录 一.需求 二.实现 三.使用 JsonSnakeCase统一转下划线json JsonSnakeCase统一转驼峰json 一.需求 golang默认的结构体json转码出来,都是大写驼峰的,并 ...
- 键盘鼠标共享效率工具----Synergy
在日常工作中,为了提高工作效率以及用户体验,会一个主机接多个显示器,像程序员一般都是使用两块显示器. 然而,有很多人是和我一样,自己有多台电脑,两个笔记本.公司一个台式机,如何在台机器之间来回切换工作 ...
- 使用JFreeChart生成条形图
1. 准备工作 下载JFreeChart,我使用的版本为1.0.19,相关内容参见JFreeChart,下载链接为https://sourceforge.net/projects/jfreechart ...
- [noi.ac省选模拟赛]第12场题解集合
题目 比赛界面. T1 数据范围明示直接\(O(n^2)\)计算,问题就在如何快速计算. 树上路径统计通常会用到差分方法.这里有两棵树,因此我们可以做"差分套差分",在 A 树上对 ...
- UI 自动化遇到的坑
1,ElementNotInteractableException: Message: element not interactable 该解决方法是用xpath定位,然后使用js操作元素,点击之类 ...
- Java并发编程的艺术(一、二章) ——学习笔记
第一章 并发编程的挑战 需要了解的一些概念 转自 https://blog.csdn.net/TzBugs/article/details/80921351 (1) 同步VS异步 同步和异步通常用来 ...
- Redis快照原理详解
本文对Redis快照的实现过程进行介绍,了解Redis快照实现过程对Redis管理很有帮助. Redis默认会将快照文件存储在Redis当前进程的工作目录中的dump.rdb文件中,可以通过配置dir ...

