java - 在 unix 中文件更改时触发进程

标签 java unix cron cron-task crontrigger

当不同远程节点中的文件发生更改时,我需要触发远程节点中的进程。场景是这样的。远程节点上有一个 cron 在未知时间运行。 Cron 触发一些进程,该进程将更改同一节点中的某些文件。我需要做的是,当这些文件发生更改时,我需要对这些文件进行解析并将其填充到其他远程节点的数据库中。

我怎样才能做到这一点。如何了解节点中的文件何时发生更改,并在不同节点中发现任何更改时触发 .sh 文件。

最佳答案

java7 WatchService满足您的要求,代码如下

    WatchService watchService=FileSystems.getDefault().newWatchService();  
    Paths.get("/opt").register(watchService,   
            StandardWatchEventKinds.ENTRY_CREATE,  
            StandardWatchEventKinds.ENTRY_DELETE,  
            StandardWatchEventKinds.ENTRY_MODIFY);  
    while(true)  
    {  
        WatchKey key=watchService.take();  
        for(WatchEvent<?> event:key.pollEvents())  
        {  
            System.out.println(event.context()+" happen "+event.kind());  
        }  
        if(!key.reset())  
        {  
            break;  
        }  
    }

关于java - 在 unix 中文件更改时触发进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25543984/

相关文章:

Java 小程序 : jocl operations stop java3d

java - Platform.getBundle 返回 null

java - 错误 : Invalid value of sonar. 来源

c - 如何在管道上放置指针?

c - 我如何不在终端中输入 gcc 和 MacOSX sdk 的完整路径?

python-3.x - Python3 : configparser KeyError when run as Cronjob

java - Builder 在 Builder 中拥有私有(private)访问权限

c - 使用 c 以编程方式更改正在运行的外部进程的 uid 和 gid

node.js - 如何以编程方式安排 AWS lambda 函数在事件发生后运行 X 时间?

node.js - 如果从 cron 运行,则无法将模块导入到 Node 脚本中