远程目录监视和传输Java文件

时间:2015-03-10 13:12:29

标签: java ssh ftp rsync file-transfer

有人可以告诉我是否有办法监控 HostB 中的目录,并将该目录中的新文件传输到Java中的 HostA

仅供参考,我的Java代码应该位于 HostA

2 个答案:

答案 0 :(得分:0)

我会使用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

答案 1 :(得分:0)

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