java使用Linux命令scp从远程服务器上传下载文件

前言

场景如下:写一个jar架包,在一台Linux服务器上运行,去另一台Linux服务器上下载文件到本服务器,这两台服务器在同一个内网中,先开始使用FTPClient,发现下载速度大约200k/s,都在内网为啥这么慢就不清楚了,请大神指导。最后改用SCPClient,即Linux的scp命令,速度就能达到50M/s。

具体实现

  1. 使用架包ganymed-ssh2-build210.jar
  2. 实现代码
 Connection conn = new Connection("IP地址");//目标服务器地址
 conn.connect();
 boolean isAuthenticated = conn.authenticateWithPassword("用户名", "密码");
 if (isAuthenticated == false){
     throw new IOException("Authentication failed.");
 }

 SCPClient client = new SCPClient(conn);
 client.get("目标服务器文件路径", "本服务器用来存放文件路径");//get方法用来将目标服务器的文件下载到本地服务器
 client.put("本服务器文件路径","目标服务器用来存放文件路径");//put方法用来将本地文件上传到目标服务器

 ch.ethz.ssh2.Session session = conn.openSession();
 session.execCommand("rm -rf "目标服务器文件路径"/*");//这行代码可以把目标服务器上下载后的文件删除

 conn.close();
 session.close();

注意

着重注意get和put方法参数的前后位置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值