使用ganymed-ssh2-build.jar上传到linux服务器指定文件夹

1.在pom文件添加依赖:


    ch.ethz.ganymed
    ganymed-ssh2
    build210

2.上传到linux服务器指定文件夹方法   代码如下:

package com.longjin.comm.utils;

import ch.ethz.ssh2.*;

import java.io.*;
import java.net.HttpURLConnection;

/**
 * @Description:上传文件到指定服务器目录
 * @Author 何志鹏
 * @Date 2020/6/11 23:14
 * @Version 1.0
 */
public class GanymedSsh2Utils {


    /**
     * 上传pdf到指定服务器中
     *
     * @param dataServerIp  linux环境ip
     * @param dataServerUsername  linux环境用户名
     * @param dataServerPassword  linux环境登录密码
     * @param dataServerDestDir  linux环境文件目录
     * @param localDir  本地上传目录
     */
    public static void  uploadPdf(String dataServerIp,String dataServerUsername,String dataServerPassword, String dataServerDestDir,String localDir ){

        //文件scp到数据服务器
        Connection conn = new Connection(dataServerIp);
        SFTPv3Client sftpClient = null;
        Session session = null;
        System.out.println("开始scp文件");
        try {
            conn.connect();
            boolean isAuthenticated = conn.authenticateWithPassword(dataServerUsername, dataServerPassword);
            if (isAuthenticated == false)
                throw new IOException("Authentication failed.文件scp到数据服务器时发生异常");

            //执行远程命令,成功
            session = conn.openSession();
            session.execCommand("cd "+dataServerDestDir);//分号隔开执行多条指令
            //显示执行命令后的信息
            InputStream stdout = new StreamGobbler(session.getStdout());
            BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
            while (true) {
                String line = br.readLine();
                if (line == null) {
                    System.out.println("session,远程服务器返回信息:空");
                    break;
                }
                System.out.println("session,远程服务器返回信息:" + line);
            }
            //获得退出状态
            System.out.println("session,ExitCode: " + session.getExitStatus());//返回0 表示命令执行成功;返回1 表示执行失败
            session.close();

            //远程文件复制到本地成功
            SCPClient client = new SCPClient(conn);
            File file = new File(localDir);
            File[] files = file.listFiles();
            for(int i = 0;i 
  

3.main方法调用上传结果如下:

使用ganymed-ssh2-build.jar上传到linux服务器指定文件夹_第1张图片

你可能感兴趣的:(使用ganymed-ssh2-build.jar上传到linux服务器指定文件夹)