Ganymed ssh2 连接ftp server获取server的file

Java使用Ganymed SSH远程登录服务器并读取文件 Java使用Ganymed SSH远程登录服务器并读取文件 导入jar包,或配置依赖 <-- ganymed-ssh2-build210.jar --> <dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>ganymed-ssh2</artifactId> <version>build210</version> </ 阅读详情

pom.xml

 <dependency>
        <groupId>ch.ethz.ganymed</groupId>
        <artifactId>ganymed-ssh2</artifactId>
        <version>build210</version>
    </dependency>


java代码片段

import java.util.StringTokenizer;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;


public String runSftpConnect(HttpServletRequest request,String server,String port, String username, String password, String root,String fileName,int sku_no) throws Exception{
String EDIFile=""; 
Connection connection = null;
Session sess = null;
InputStream stdout = null;
BufferedReader stdoutReader = null;
        try {
        int ipPort = 2222;
        if(port!=null&&!"".equals(port)){
        ipPort = Integer.parseInt(port);
        }
            connection = new Connection(server,ipPort);
            connection.connect();
            boolean isAuthenticated = connection.authenticateWithPassword(username, password);
            if (!isAuthenticated) {
                throw new IOException("authentication failed");
            }


            sess = connection.openSession();  
//send commands.
String command = "";
StringBuffer output = new StringBuffer();

command =  "cd "+root+";egrep -l ~"+ sku_no+"~ "+fileName;

sess.execCommand(command);
stdout = new StreamGobbler(sess.getStdout());  
          InputStream stderr = new StreamGobbler(sess.getStderr());  
stdoutReader = new BufferedReader(  
                 new InputStreamReader(stdout));   
             
            while (true) {  
              String line = stdoutReader.readLine();  
              if(line!=null&&!"null".equals(line)){
             output.append(line);
              }else if (line == null) {
             break;
              }
            }


            String fileExist = "N";
       if ((output.indexOf(fileName) >=0) && (output.indexOf("egrep") == -1)) {
        fileExist = "Y"; 
       }
       sess.close();
       if("Y".equals(fileExist)){
       
       sess = connection.openSession();  
       
       command = "cd "+root+";grep ~"+ sku_no+"~ "+fileName;

sess.execCommand(command);
stdout = new StreamGobbler(sess.getStdout());
stdoutReader = new BufferedReader(  new InputStreamReader(stdout));   
output.setLength(0);
           while (true) {  
             String line = stdoutReader.readLine();  
             output.append(line);
               if (line == null)  
                   break;
           }  
           
           StringTokenizer st = new StringTokenizer(output.toString(), "\n");
           String tmp1 = ""; 
           while (st.hasMoreTokens()) {
             tmp1 = st.nextToken();
             if ((tmp1.indexOf(String.valueOf(sku_no))>=0) && (tmp1.indexOf("grep") == -1)){
             EDIFile = tmp1;
             break;
             }
           }
           
       }
       
       
      
} catch (Exception e) {
request.setAttribute("error", e);
throw e;
} finally {

if (EDIFile.equals("")){
        request.setAttribute("error", "There is no EDI raw data for this sku!");
       }

stdoutReader.close();
stdout.close();
sess.close();
connection.close();
}
        
        return EDIFile;
}


ssh2-sftp-client实现前端项目自动部署 exec():要在命令行执行的完整命令:可选参数,JSON对象async: 异步执行.如果你提供了回调方法,这个值就一定为true,无论你怎么设置silent:打印信息不输出到命令控制台Node.js 的方法的其他参数都可以用:当进程终止时调用,并带上输出。返回值: 同步模式下,将返回一个ShellString(shelljs v0.6.xf返回一个形如{ code:..., stdout:... , stderr:... }的对象); 阅读详情

相关推荐

使用ganymed-ssh2-build.jar来操作linux服务器(上传、下载文件,远程创建目录,远程删除文件等等)

package com.xxx.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.util.List; import ch.ethz.ssh2.Conne

lsq112233的专栏 7153

Java通过ftp上传文件,通过ssh操作远程服务器工具类

maven <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.6</version> </dependency> <dependency> .

m0_49513507的博客 939

全面解析SSH2的文件上传与下载技术要点

SSH2,即Secure Shell版本2,是一种网络协议,用于安全地访问远程计算机。它在客户端和服务器之间建立加密通道,确保数据传输的机密性和完整性,广泛应用于Linux和Unix系统中。随着网络安全问题日益突出,SSH2的使用变得越来越重要。

weixin_31163455的博客 1309

FTP和SSH

一,FTP 文件传输 1.基本概念: 1)属于应用层的协议 2)server/client工作模式 3)ftp提供了一种server和client之间put和get文件的有效方式 2.传输模式: 1)ASCll(默认) 主要用于传文本 2)二进制模式 主要用于传图片、程序 3.基本原理: 基于2次TCP协议 客户端 服务器 4.如何进行文件传输呢? 1)前提:server和client之间必须...

ouyangxikun的博客 1525

ssh2向linux发送操作命令,ftp下载linux文件到本地

ssh2向linux发送操作命令,ftp下载linux文件到本地

Java(通过ganymed-ssh2-build210.jar)实现SSH远程连接linux终端

Java语言+绚丽的界面+仿ssh实现调用Linux的Terminal,实现远程连接linux进行命令行的操作!

Java中实现SSH2/SCP/SFTP/FTP操作

支持SSH2/SCP/SFTP/FTP操作的开源java库有以下几个: 1. Ganymed SSH-2 for Java. BSD style license. "Ganymed SSH-2 for Java is a freely available open-source library which implements the SSH-2 protocol in pure Ja

blade2001的专栏 6710

距离多普勒谱(RD谱)绘制方法及理解

RD谱是信号处理领域常用的图形。原始信号往往是一维时域序列,如何将其二维化,并进行变换生成RD谱呢?由于刚刚接触,查阅了网络上、老师手里的资料,发现RD谱的绘制方法并不统一,有些存在一定问题。在此,将心得体会记录下来。

mddh_123的博客 3万+

【亲测免费】 SSH2-SFTP-Client: 安全的文件传输解决方案

`ssh2-sftp-client` 是一个开源项目,基于 Node.js 编程语言开发。该项目提供了一个简单易用的 SFTP 客户端类 `SftpClient`,是对 SSH2 包的封装,使得开发者可以方便地通过 Promise-based API 与远程 SFTP 服务器进行交互。 ## 2. 核心功能 项目的核心功能是提供一个稳定的 SFTP 客户端,支持以下操作: - 连接到 SFT

gitblog_00462的博客 532

模糊控制——基本原理(附MATLAB程序)

模糊化:使用隶属函数将实际输入转换为模糊集合的隶属度值。规则库:利用“如果-那么”规则将模糊输入映射到模糊输出。推理机制:通过规则的模糊化和模糊集合的合成,生成模糊输出。去模糊化:将模糊输出转换为具体的控制信号,常用的方法包括质心法和最大隶属度法。这些步骤综合起来,实现了模糊控制系统对复杂和不确定系统的有效控制。模糊控制系统通过结合模糊逻辑和规则库来处理复杂系统中的不确定性和模糊性。它的核心在于模糊集合和隶属函数,通过推理机处理模糊规则,并最终通过去模糊化生成具体的控制信号。

qq_35623594的博客 5559

ffmpeg中av_read_frame阻塞的原因与解决方案

最近用到ffmpeg,想要av_read_frame立即返回,但是看网上的博客,都没有详细的解说,那就自己看源码。 两种方法: 设置回调打断函数和设置超时 超时,但是如果只设置该参数,依然会在av_read_frame中阻塞, av_dict_set(&inputDic, "stimeout", "2*1000*1000", 0); // milliseconds //打断回调 m_avformatCtx->interrupt_callback.callback = interru

weixin_43360707的博客 1万+

Java利用ganymed-ssh2访问远程服务器上文件的属性

Java利用ganymed-ssh2访问远程服务器上文件的属性 此方法可以获取远程服务器上某个文件夹里面的文件及其属性 首先导入ganymed-ssh2的依赖 <!-- https://mvnrepository.com/artifact/ch.ethz.ganymed/ganymed-ssh2 --> <dependency> &...

qq_43274869的博客 969

Fiddler everywhere的一些基础操作

网上能搜到的Fiddler everywhere使用教程太少,于是我整理了一些自己实操成功的内容,包括Fiddler everywhere的Mock测试、弱网测试等基础操作,后续还会持续更新。操作系统:macOS使用工具:Fiddler everywhere 5.10.0本文简单介绍了使用Fiddler everywhere进行的Mock测试和弱网测试,而Fiddler everywhere提供了更多的其他实用的功能,我会在后期进行一个持续的学习和更新。

weixin_44346646的博客 2479

java中用Ganymed实现SCP 和SFTP文件传输

备忘。 下载jar包:ganymed-ssh2-build210.jar import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import ch.ethz.ssh2.Connection; ...

pickpocket的专栏 943

Altium Designer差分走线实战:从规则设置到阻抗匹配的完整流程

本文详细讲解了在Altium Designer中进行差分走线的完整实战流程,涵盖从原理图定义差分对、PCB布局管理、关键设计规则设置,到利用阻抗计算工具确定线宽与间距,以及布线技巧与等长处理等核心步骤。文章旨在帮助工程师掌握高速PCB设计中差分信号传输的关键技术,确保信号完整性并实现精确的阻抗匹配。

weixin_29163857的博客 257

【Autosar从入门到精通到进阶实战篇】75 0x34/0x36/0x37:请求下载、传输数据、请求退出——刷写流程的“三兄弟”

文章摘要:UDS刷写流程0x34/0x36/0x37关键实现要点 本文通过一个真实ECU变砖案例,揭示了UDS刷写服务(0x34请求下载、0x36传输数据、0x37请求退出)的实现陷阱与最佳实践。核心要点: 安全架构设计: 0x34阶段只协商参数,不立即擦除Flash 采用缓冲区暂存数据,避免频繁写Flash 严格检查地址对齐和内存边界 关键改进措施: 实现数据包序列号校验(防错位) 传输层缓冲区溢出保护 0x37阶段必须包含完整性校验(如CRC32) 一次性批量写入Flash,减少擦写次数 典型错误模式:

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 71

基于Ganymed远程执行命令,下载sftp文件(加设置代理)

可远程下载sftp服务器上的文件,可以远程执行Linux指令,可以设置代理。 package com.download.utils; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import ch.ethz.ssh2.Connection; import ch.ethz.ssh2.HTTPProxyData;

hongmofang10的博客 362

自动批量安装加载cran, bioconductor和github三个平台的所有的R包

自动批量安装加载cran, bioconductor和github三个平台的所有的R包

qq_40073899的博客 561

Ganymed SSH-2 for Java系列8之SFTPv3Client说明

Ganymed SSH-2 for Java系列8之SFTPv3Client说明: SFTPv3Client是SSH for java的一个SFTP(协议版本 3), 客户端通过SSH-2连接的一个简单的同步实现java类。 其基本的对外方法有如下: public SFTPv3FileAttributes stat(String path) throws IOExce

okkeqin的专栏 3926

在Simulink中构建感应电机的时滞补偿控制模型,并通过仿真验证不同补偿策略的有效性

核心优势Smith预估器可有效补偿已知时滞,提升系统稳定性。动态PID调整适用于时变时滞的初步补偿。扩展方向自适应时滞估计:结合Luenberger观测器实时估计时滞。鲁棒控制:引入H∞控制或滑模控制抑制参数不确定性。网络化时滞补偿:结合知识库[2]的网络延迟模型,实现端到端补偿。

amy_mhd的博客 190

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java连接Linux上的ftp进行上传下载操作

昨天写了一个能够对Windows系统的ftp服务器进行上传和下载文件的代码,今天试了一下用在Linuxsang上会报错,错误代码如下: org.apache.commons.net.MalformedServerReplyException: Could not parse response code. Server Reply: SSH-2.0-OpenSSH_5.3 at org.apa...

red__Wind的博客 3207

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JAVA利用SSH2登录LINUX并执行命令

import ch.ethz.ssh2.Connection; import ch.ethz.ssh2.Session; import ch.ethz.ssh2.StreamGobbler; import cn.com.bsfit.frms.portal.util.RemoteExecCmd; import org.junit.Test; import java.io.BufferedReade

yezhuanxu的博客 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java程序里实现ssh, scp, sftp

在java里可以通过Ganymed SSH-2, Expect4j等实现ssh登录,由于Ganymed SSH-2是纯java实现,并且可以实现scp,sftp等,因此我们采用Ganymed SSH-2 1> 下载安装 从http://code.google.com/p/ganymed-ssh-2/     下载,我们用的是ganymed-ssh2-build251beta1.zip。 在e

fish的专栏 8255

common java socket_Java SocketConnection.connect方法代碼示例

本文整理匯總了Java中org.simpleframework.transport.connect.SocketConnection.connect方法的典型用法代碼示例。如果您正苦於以下問題:Java SocketConnection.connect方法的具體用法?Java SocketConnection.connect怎麽用?Java SocketConnection.connect使用的例...

weixin_34982065的博客 387

Sftp和ftp 区别、工作原理等(汇总ing)

Sftp和ftp over ssh2的区别 最近使用SecureFx,涉及了两个不同的安全文件传输协议: -sftp -ftp over SSH2 这两种协议是不同的。sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身不需要ftp服务器启动。ftp over SSH2则象一个二传手。   1、SFTP的工作模式: 图1显示了SFTP的工作模式,它是作为SSH2

qianzongming的专栏 2131
上一篇: ETL工具
下一篇: 关闭页面时提示是否关闭
wangliwei4321
博客等级 码龄18年 3粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值