Ganymed SSH-2 for Java系列11之SCPClient

SCPClient是一个基本的java操作类,其可以从服务器复制文件到SSH-2服务器,或者从服务器上scp出文件到本地服务器;

其操作的scp路径必须是存在与服务器上的,否则会报错。

public void put(String localFile, String remoteTargetDirectory) throws IOException

--》本地文件复制到远程目录,创建时使用的模式0600 即rw

 public void put(String localFile, String remoteTargetDirectory) throws IOException{put(new String[] { localFile }, remoteTargetDirectory, "0600");}

public void put(String[] localFiles, String remoteTargetDirectory) throws IOException

--》java多态,复制一组本地文件到远程目录,默认使用0600权限码;

 public void put(String[] localFiles, String remoteTargetDirectory) throws IOException{put(localFiles, remoteTargetDirectory, "0600");}

public void put(String localFile, String remoteTargetDirectory, String mode) throws IOException

--》java多态,本地文件复制到远程目录,使用指定的模式创建远程端上的文件。

public void put(String localFile, String remoteTargetDirectory, String mode) throws IOException{put(new String[] { localFile }, remoteTargetDirectory, mode);}

public void put(String localFile, String remoteFileName, String remoteTargetDirectory, String mode)
throws IOException

--》java多态,本地文件复制到远程目录,使用指定的模式和远程文件名创建远程端上的文件。

public void put(String localFile, String remoteFileName, String remoteTargetDirectory, String mode)throws IOException{put(new String[] { localFile }, new String[] { remoteFileName }, remoteTargetDirectory, mode);}

public void put(byte[] data, String remoteFileName, String remoteTargetDirectory) throws IOException

--》java多态,创建一个远程文件将传递的字节数组的内容复制到其中,默认模式0600创建远程文件。

public void put(byte[] data, String remoteFileName, String remoteTargetDirectory) throws IOException{put(data, remoteFileName, remoteTargetDirectory, "0600");}

其余的put方法请参考源码;

public void get(String remoteFile, String localTargetDirectory) throws IOException

--》从远程服务器上下载文件到本地目录;

public void get(String remoteFile, String localTargetDirectory) throws IOException{get(new String[] { remoteFile }, localTargetDirectory);}

public void get(String remoteFiles[], String localTargetDirectory) throws IOException

--》java多态,从远程服务器下载一组文件到本地目录。

public void get(String remoteFiles[], String localTargetDirectory) throws IOException{Session sess = null;if ((remoteFiles == null) || (localTargetDirectory == null))throw new IllegalArgumentException("Null argument.");if (remoteFiles.length == 0)return;String cmd = "scp -f";for (int i = 0; i < remoteFiles.length; i++){if (remoteFiles[i] == null)throw new IllegalArgumentException("Cannot accept null filename.");String tmp = remoteFiles[i].trim();if (tmp.length() == 0)throw new IllegalArgumentException("Cannot accept empty filename.");cmd += (" " + tmp);}try{sess = conn.openSession();sess.execCommand(cmd);receiveFiles(sess, remoteFiles, localTargetDirectory);}catch (IOException e){throw (IOException) new IOException("Error during SCP transfer.").initCause(e);}finally{if (sess != null)sess.close();}}

到此为止,ssh 2 for java的一些核心的api都已经介绍完了,后面我将将这些知识整合起来,实现对远程服务器的一个部署操作,

这个作为一个实例操作,希望自己后面有时间完成这个功能。

Ganymed SSH-2 for Java系列11之SCPClient相关推荐

  1. Java系列技术之SSH整合+用户权限控制模型项目-钟洪发-专题视频课程

    Java系列技术之SSH整合+用户权限控制模型项目-62人已学习 课程介绍         将前面讲过的Spring5.SpringMVC.Hibernate5和前端框架Easyui整合起来最终完成一 ...

  2. ganymed ssh-2 for java,用于java连接问题的Ganymed SSH(Ganymed SSH for java connect issue)

    用于java连接问题的Ganymed SSH(Ganymed SSH for java connect issue) 我们正在使用Ganymed-SSH库并在与另一台机器进行SSH时遇到此错误. [r ...

  3. Java使用Ganymed SSH远程登录服务器并读取文件

    Java使用Ganymed SSH远程登录服务器并读取文件 导入jar包,或配置依赖 <-- ganymed-ssh2-build210.jar --> <dependency> ...

  4. java sftpv3client_Ganymed SSH-2 for Java系列8之SFTPv3Client说明

    Ganymed SSH-2 for Java系列8之SFTPv3Client说明: SFTPv3Client是SSH for java的一个SFTP(协议版本 3), 客户端通过SSH-2连接的一个简 ...

  5. Java系列技术之JavaWeb入门-钟洪发-专题视频课程

    Java系列技术之JavaWeb入门-1193人已学习 课程介绍         JavaWeb里的基础核心技术 课程收益     把JavaWeb里的核心技术讲清楚! 讲师介绍     钟洪发更多讲 ...

  6. Java系列技术之Mybatis3-钟洪发-专题视频课程

    Java系列技术之Mybatis3-106人已学习 课程介绍         Mybatis3.4.6里的基础核心用法以及涉及到的ssm初步整合,mbg代码生成工具使用,分页插件的使用,学完这门课程M ...

  7. Java系列技术之SpringMVC5框架-钟洪发-专题视频课程

    Java系列技术之SpringMVC5框架-16人已学习 课程介绍         Spring MVC是当前最优秀的MVC框架,这门课程是基于Spring5.0.6的SpringMVC框架来讲解的, ...

  8. Java系列技术之Hibernate5操作数据库-钟洪发-专题视频课程

    Java系列技术之Hibernate5操作数据库-35人已学习 课程介绍         Hibernate是一个轻量级的JDBC封装,也就是说,我们可以使用Hibernate来完成原来我们使用JDB ...

  9. Java系列技术之MySql数据库-钟洪发-专题视频课程

    Java系列技术之MySql数据库-66人已学习 课程介绍         在Java系列的技术体系中,数据库是必不可少的核心知识,任何稍稍复杂一点的应用系统,都不可能少的了数据库的支持,将MySQL ...

最新文章

  1. pycharm 汉化
  2. Centos 6.3 修改xorg.conf后 启动失败
  3. Karush-Kuhn-Tucker 最优化条件 (KKT 条件)(转载)
  4. ldap odbc mysql_Mysql+ODBC+OpenLDAP
  5. 【Python-GPU】GPU数据科学加速包——RAPIDS
  6. Datawhale 三月组队学习计划
  7. 2019南昌网络赛H The Nth Item(二阶线性数列递推 + 广义斐波那契循环节 + 分段打表)题解...
  8. c语言putchar_C语言写一个小程序,胖胖的爱心桃
  9. 软件开发过程模型(瀑布模型,快速原型模型,螺旋模型)
  10. Linux基础知识全面总结
  11. 手机群控还有这种事半功倍的操作?快来看强大的Rest API脚本功能
  12. 基于STM32制作万能遥控器---1
  13. WTL入门(五) 自定义控件
  14. HTML5气泡悬浮框(已经加上完整文件)
  15. python批量读取图片并复制入word_提取出 Word 文档里的图片  并利用 python 批量转换格式...
  16. swash编译安装教程
  17. 202007 软件市场分析
  18. 【任务分解】 向埃隆·马斯克学习任务分解
  19. 雷军周鸿祎黄章,个性及扑朔迷离的关系
  20. 巧用google实现快速搜索

热门文章

  1. Oracle 动态游标 PL/SQL 动态SQL语句 open for [using] 语句
  2. 手摸手写一个互联网黑话生成器
  3. 短视频配音的秘诀!你不会还在傻傻自己人声配音吧?
  4. 多人配音怎么做的?这两个多人配音方法分享给你
  5. bmp/gif/jpg图象最底层原理分析
  6. 房子装修选择自装,要敲墙如何在手机上申请住建局装修备案,几分钟即可拿到电子版备案通知书
  7. NodeMcu arduino ESP8266 使用Ticker库(多任务处理)
  8. 2016年中国未来的新兴行业推荐
  9. 感谢老师,更感谢自己
  10. 解决Lost connection to MySQL server during query错误方法