java读取linux服务器下某文档的内容

简介: java读取linux服务器下某文档的内容

1.jpg

使用步骤:

==共3步:
第一步:添加依赖
第二步:配置文件
第三步:代码调用==

依赖

<!--java读spark-->
 <dependency>
     <groupId>ch.ethz.ganymed</groupId>
     <artifactId>ganymed-ssh2</artifactId>
     <version>build210</version>
 </dependency>
 <!--java读spark-->
 <dependency>
     <groupId>com.jcraft</groupId>
     <artifactId>jsch</artifactId>
     <version>0.1.54</version>
 </dependency>

配置文件

image.png

# bigdata
usr=root
pwd=geecentos

代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Vector;

import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.SFTPv3Client;
import ch.ethz.ssh2.SFTPv3DirectoryEntry;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;

import com.geespace.microservices.calculate.execute.engine.bean.pojo.SparkRecord;
import com.geespace.microservices.calculate.execute.engine.dao.SparkRecordMapper;
import com.geespace.microservices.calculate.execute.engine.response.JobSubmitResponse;
import com.geespace.microservices.calculate.execute.engine.response.Msg;
import com.geespace.microservices.calculate.execute.engine.response.Response;

import lombok.extern.slf4j.Slf4j;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.RestTemplate;
/**
     * login 注意:创建远程连接,默认连接端口为22,如果不使用默认,可以使用方法
     *
     * @param submissionId
     *            submissionId
     * @param ret
     *            ret
     * @author liudz
     * @date 2020/5/11
     * @return 执行结果
     **/
    public String login(String submissionId, ResponseEntity<JobSubmitResponse> ret) {
   
        String result = "";
        String ip = ret.getBody().getWorkerHostPort().substring(0, ret.getBody().getWorkerHostPort().indexOf(":"));
        Connection conn = null;
        Session ss = null;
        String directory = "/home/spark/work/" + submissionId;
        try {
   
            conn = new Connection(ip);
            conn.connect();
            boolean b = conn.authenticateWithPassword(usr, pwd);
            if (!b) {
   
                throw new IOException("Authentication failed.");
            } else {
   
                SFTPv3Client sft = new SFTPv3Client(conn);
                Vector<?> v = sft.ls(directory);
                for (int i = 0; i < v.size(); i++) {
   
                    SFTPv3DirectoryEntry s = new SFTPv3DirectoryEntry();
                    s = (SFTPv3DirectoryEntry) v.get(i);
                    if ("stdout".equals(s.filename)) {
   
                        ss = conn.openSession();
                        ss.execCommand("cat ".concat("/home/spark/work/" + submissionId + "/" + s.filename));
                        InputStream is = new StreamGobbler(ss.getStdout());
                        BufferedReader bs = new BufferedReader(new InputStreamReader(is));
                        while (true) {
   
                            String line = bs.readLine();
                            if (line == null) {
   
                                break;
                            } else {
   
                                result += line + "\n";
                            }
                        }
                        bs.close();
                    }
                }
                ss.close();
                conn.close();
            }
        } catch (IOException e) {
   
            log.error("用户%s密码%s登录服务器%s失败!", usr, pwd, ip, "--ERROR--e:" + e.getMessage());
        }
        System.out.print(result);
        return result;
    }

JobSubmitResponse

package com.geespace.microservices.calculate.execute.engine.response;

import lombok.Data;

/**
 * @author: liudz
 * @date: 2020-04-27
 */
@Data
public class JobSubmitResponse {
   
    /**
     * 动作名称
     */
    private String action;
    /**
     * 信息
     */
    private String message;
    /**
     * spark版本
     */
    private String serverSparkVersion;
    /**
     * 提交id
     */
    private String submissionId;
    /**
     * 成功与否状态
     */
    private String success;
    /**
     * driver状态
     */
    private String driverState;
    /**
     * workerHostPort
     */
    private String workerHostPort;
    /**
     * workerId
     */
    private String workerId;
}
目录
相关文章
|
10天前
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
55 5
|
19天前
|
监控 Linux Shell
|
4天前
|
安全 算法 Linux
Linux 服务器还有漏洞?建议使用 OpenVAS 日常检查!
在数字化时代,Linux 服务器的安全至关重要。OpenVAS 是一款优秀的开源漏洞扫描工具,可以帮助及时发现并修复服务器中的安全隐患。本文将介绍 OpenVAS 的主要功能、使用方法及应对漏洞的措施,帮助用户加强服务器安全管理,确保企业数字化安全。
16 7
|
7天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
10天前
|
缓存 Unix Linux
服务器linux!!!
本文介绍了计算机的演变历史、硬件基础知识及服务器相关知识。从电子管时代的ENIAC到冯-诺伊曼架构,再到现代计算机系统组成,详细讲解了计算机的发展历程。此外,文章还介绍了服务器的分类、品牌、硬件组成以及IDC机房的上架流程,为读者提供了全面的技术背景知识。
28 0
服务器linux!!!
|
12天前
|
人工智能 安全 Linux
|
14天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
72 3
|
17天前
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
|
20天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
164 2
|
12天前
|
Linux
Linux 修改服务器时间
【10月更文挑战第27天】Linux 修改服务器时间
31 0