【问题标题】:Copy remote server directories to local machine将远程服务器目录复制到本地计算机
【发布时间】:2018-02-15 08:54:17
【问题描述】:

我们有一个架构,其中数百个 Java 组件部署在多台服务器上(40 多个)。业务流程涉及将数据从一个组件传递到另一个组件。每个组件都吐出日志。每次出现问题时,我都必须转到各种服务器日志目录(都映射为不同的网络驱动器)并查看日志文件。

我想知道从 40 多台服务器上的所有这些文件夹复制并复制到我的本地计算机的最快方法是什么。我想创建一个可以做到这一点的程序/脚本。我可以在开始研究问题之前运行此脚本。

我编写了自己的 java 程序并使用了 FileUtils.copyDirectory。用 40 个奇怪的源目录和我的本地目标目录循环调用。不幸的是,如果正在写入源文件,FileUtils.copyDirectory 会抛出异常。

如果我可以实施一个解决方案,以便我的故障排除过程跨越这些文件,这将是一个巨大的帮助。

这是在 Windows 上。

我熟悉java。可以尝试其他语言。请不要推荐购买任何产品。这只是我正在考虑开发以解决我的问题的开发人员技巧。

【问题讨论】:

    标签: java file copy directory xcopy


    【解决方案1】:

    你可以试试这样的:

    public static int extraction()
    {
        String hostname = "*server host name*";
    
        String username = "*enter username*";
        String password = "*enter password*";
    
        String copyFrom = "*server path for example /home/file/abc.png *";
        String copyTo = "*local path for example C:\\Documents *"; 
    
        JSch jsch = new JSch();
        Session session = null;
        System.out.println("Trying to connect.....");
        try 
        {
            session = jsch.getSession(username, hostname, 22);
            session.setConfig("StrictHostKeyChecking", "no");
            session.setPassword(password);
            session.connect(); 
            Channel channel = session.openChannel("sftp");
            channel.connect();
            ChannelSftp sftpChannel = (ChannelSftp) channel; 
            sftpChannel.get(copyFrom, copyTo);
            sftpChannel.exit();
            session.disconnect();
    
        } 
    
        catch (JSchException e) 
        {
            e.printStackTrace();  
        } 
        catch (SftpException e) 
        {
            e.printStackTrace();
        }
        System.out.println("Done !!");
        return 0;
    }
    

    这是我用来从单一来源获取服务器日志文件的一种方法,但可以对其进行重新设计以获取所需数量的文件。请原谅格式,因为这是我使用并觉得舒服的格式。

    使用的参考链接:https://vinaydvd.wordpress.com/2013/12/08/copying-files-from-a-remote-linux-server-to-local-windows-server-using-java/

    【讨论】:

      猜你喜欢
      • 2015-03-19
      • 2013-03-04
      • 2012-02-23
      • 2021-12-25
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-09
      相关资源
      最近更新 更多