cmd下载远程linux的文件,Java利用ssh协议实现从远程Linux服务器下载文件和文件夹...

本文介绍了一种使用Java结合SSH协议下载远程Linux服务器文件夹的方法,包括导入相关jar包、建立SSH连接、执行Linux命令打包文件、下载文件及解压等步骤。虽然没有提供遍历下载整个文件夹的优化方案,但提供了下载单个文件或打包文件的实现。
摘要由CSDN通过智能技术生成

近来应需求需要,做了服务器之间的文件传输,利用的ssh协议。查阅各种资料博客,基本都是下载文件的方法,找不到下载文件夹得方法。思索多日写了一个下载文件夹的简单方法,可能步骤繁琐,优化不大好。由于jsch不能得到服务器端文件的绝对路径,目前还没能想出怎么遍历下载文件夹和文件。只好利用ssh2 jar包的session方法操作Linux命令实现下载。话不多说,直接上代码。

一:导入的jar包,jar包在Apache可以自己下载

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.UnsupportedEncodingException;

import java.util.ResourceBundle;

import java.util.zip.GZIPInputStream;

import org.apache.tools.tar.TarEntry;

import org.apache.tools.tar.TarInputStream;

import ch.ethz.ssh2.Connection;

import ch.ethz.ssh2.SCPClient;

import ch.ethz.ssh2.Session;

import ch.ethz.ssh2.StreamGobbler;

二:类和方法

/**

*

* @param dataServerIp 服务器IP

* @param dataServerUsername 服务器用户名

* @param dataServerPassword 服务器登录密码

* @param srcFile 要下载的文件路径

* @param saveFile 保存路径

* @param port 端口号,null时为默认端口

*/

public static void downLoadFile(String dataServerIp,String dataServerUsername,String dataServerPassword,String srcFile,String saveFile,int port){

Connection conn = new Connection(dataServerIp);

Session session = null;

SCPClient client =null;

//session=(Session) getObject(dataServerIp, dataServerUsername, dataServerPassword, 0, "session");

//client=(SCPClient) getObject(dataServerIp, dataServerUsername, dataServerPassword, 0, "client");

conn=getConn(dataServerIp, dataServerUsername, dataServerPassword, 22);

try {

session=conn.openSession();

client=conn.createSCPClient();

} catch (IOException e1) {

e1.printStackTrace();

}

try {

boolean fl

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值