【发布时间】:2015-03-19 17:54:18
【问题描述】:
谁能告诉我是否有办法监视 HostB 中的目录并将该目录中的新文件传输到 Java 中的 HostA?
仅供参考,我的 Java 代码应该驻留在 HostA 中。
【问题讨论】:
-
Java File commands over SSH 的可能重复项
标签: java ssh ftp rsync file-transfer
谁能告诉我是否有办法监视 HostB 中的目录并将该目录中的新文件传输到 Java 中的 HostA?
仅供参考,我的 Java 代码应该驻留在 HostA 中。
【问题讨论】:
标签: java ssh ftp rsync file-transfer
您必须能够通过一些有 java 代码的协议(HTTP、samba、ftp、nfs 等)访问 HostB。然后,您只需创建一个 Java 守护线程,它会定期检查目录以查看是否有任何更改并复制数据
【讨论】:
我会使用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
【讨论】: