当不同远程节点中的文件发生更改时,我需要触发远程节点中的进程。场景是这样的。远程节点上有一个 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/