【问题标题】:Remote directory monitor and transfer files in JavaJava中的远程目录监控和传输文件
【发布时间】:2015-03-19 17:54:18
【问题描述】:

谁能告诉我是否有办法监视 HostB 中的目录并将该目录中的新文件传输到 Java 中的 HostA

仅供参考,我的 Java 代码应该驻留在 HostA 中。

【问题讨论】:

标签: java ssh ftp rsync file-transfer


【解决方案1】:

您必须能够通过一些有 java 代码的协议(HTTP、samba、ftp、nfs 等)访问 HostB。然后,您只需创建一个 Java 守护线程,它会定期检查目录以查看是否有任何更改并复制数据

【讨论】:

  • 您能否提供一些实施步骤?
【解决方案2】:

我会使用JSch。如果 HostA 和 HostB 是 linux 主机,这应该可以做到。您可以执行安全复制 (scp) 来传输数据并使用 ssh 执行一些 shell 代码来远程监控文件。这可以通过设置公钥/私钥来完成。

要使用 shell 进行监控,您可以使用以下内容:

#!/bin/bash

# directory to monitor
monitoredDirectory="/tmp";
# control file
monitorFile="$(mktemp).$$"
# sleep time
monitorSleep=10

while /bin/true;
do
  # if you want to see directories remove '-type f'
  find "${monitoredDirectory}" -type f -cnewer "$monitorFile" -print 2>/dev/null
  touch "$monitorFile"
  sleep $monitorSleep
done

【讨论】:

  • 到底有没有将密钥作为身份验证方法而不是密码?另外,能否请您更具体地了解“使用 ssh 执行一些 shell 代码以远程监控文件”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-19
相关资源
最近更新 更多