【问题标题】:which is more efficient for sftp: java or shell script? [closed]哪个对 sftp 更有效:java 还是 shell 脚本? [关闭]
【发布时间】:2016-04-02 09:04:57
【问题描述】:

我们每分钟向多台服务器发送数百个文件。

目前我们正在生成仅包含 sftp 命令的 shell 脚本(通过 java 生成的文件)并将它们作为 shell 脚本执行。我们使用java的原因是根据目标路径和目标服务器来组织文件。最后,对于每个目标服务器,我们将拥有一个 shell 脚本。

现在我在想,如果我通过 java 代码本身发送文件而不是生成脚本并执行它,会不会更高效和快速

目前为 4 台服务器生成脚本需要 4 到 5 秒。因此,实际 sftp 的执行从第 5 秒开始并且非常快地完成(基于文件数)。如果我切换到 JSch 之类的 java sftp,它会和 shell 脚本中的 sftp 一样快还是更慢?

【问题讨论】:

  • 有很多方法可以让 Java 实现比 shell 实现更快。但是它是否真的会取决于两者的实现,所以这真的不是一个可以回答的问题,具有合理的stackoverflow范围。我的建议是调查当前进程缓慢的问题有多大,调查 Java 实现可能需要多长时间,然后如果你认为可能的收益值得付出努力,那就去做,看看如何它带来了很大的不同。
  • 为什么生成脚本需要 4-5 秒?这似乎是寻找效率低下的好地方。您可以生成一个脚本并在生成下一个之前运行它吗?

标签: java linux bash sftp ssh2-sftp


【解决方案1】:

这取决于你想要达到什么目标。如果该解决方案的维护也是一个因素,我建议将 apache-camel 与 ftp 组件 https://github.com/apache/camel/tree/master/examples/camel-example-ftp 一起使用。为您提供控制和灵活性。不生成 shell 脚本。最重要的是,您可以围绕它编写一个应用程序(如果需要)或使其成为现有应用程序的一部分。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-18
  • 1970-01-01
  • 1970-01-01
  • 2021-06-09
  • 2012-02-20
  • 2010-10-12
  • 2011-03-05
相关资源
最近更新 更多