我需要检测新文件添加到远程Linux服务器上的文件夹中,该服务器遵循SFTP进行连接。
现在,我正在尝试使用Java nio Watch服务来检测本地(Windows OS )的更改,但它似乎可以用于本地文件更改或共享驱动器文件更改。
由于某些真正的原因,我无法发布我的代码,但我已经使用jsch连接到SFTP服务器和Java nio Watch服务来检测文件更改。
我将在openshift上部署java springboot应用程序作为docker容器( jsch和watcher服务是否可以用于基于linux的容器,以检测远程linux SFTP服务器上的文件更改?)
我通过谷歌搜索,得到的答案很少,但我有点困惑。
想知道一种更好的方法来检测基于Linux服务器的远程SFTP上的文件更改。
非常感谢你的帮助!!
发布于 2020-08-13 06:13:37
检出rdp4j库:https://github.com/drapostolos/rdp4j/wiki/User-Guide
用于检测更改的文件的PolledDirectory示例: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选项附带的猜测工作。
https://stackoverflow.com/questions/63383882
复制相似问题