我有一个要求,即检测是否有新文件添加到远程Linux服务器上的文件夹中,该服务器的连接遵循SFTP。
现在我正试图通过使用Java nio Watch服务从本地(windows操作系统(检测更改,但它似乎可以用于本地文件更改或共享驱动器文件更改。
由于一些真正的原因,我无法发布我的代码,但我已经使用jsch连接到SFTP服务器和Java nio Watch服务来检测文件更改。
我将在openshift上部署javaspringboot应用程序作为docker容器(jsch和watcher服务是否可以用于基于linux的容器,以检测远程linux SFTP服务器上的文件更改?(。
我浏览了一下谷歌,得到的答案很少,但我有点困惑。
想知道一种更好的方法来检测远程基于SFTP的Linux服务器上的文件更改。
非常感谢你的帮助!!
签出rdp4j库:https://github.com/drapostolos/rdp4j/wiki/User-Guide
Polled目录用于检测更改的文件:https://github.com/OhadR/rdp4j-client/blob/master/src/main/java/example/sftp/SFtpDirectory.java
当您使用jsch时,另一个(有些棘手(选项是简单地在远程服务器上运行Linux命令,并获取在X和X+n时间戳之间修改的文件列表。您可以用程序指定精确的时间戳,并按计划运行(所有文件"轮询器"基本上都是定时作业,它们会非常频繁地进行检查(
find /tmp -type f -newermt "2020-08-12 15:01:00" ! -newermt "2020-08-12 15:02:00"
find命令的";newermt";选项可以指定精确的时间戳范围,并且可以避免-mmin或-mtime选项带来的猜测工作。