如何在Linux下使用Java检测何时插入新的SATA驱动器?

如何在Linux下使用Java检测何时插入新的SATA驱动器?,java,linux,sata,Java,Linux,Sata,我目前正在从事一个项目,需要将数据批量导入Hadoop集群。需要导入Hadoop的数据驻留在SATA磁盘上。需要导入的数据是Encase取证磁盘映像(E01)。我创建了一个应用程序,从这些图像中提取文件并将这些文件导入Hadoop,这很好,但我需要手动启动该过程 我想通过热插拔SATA驱动器来自动化该过程,并自动启动提取过程。我用Java编写了我的程序,由于我使用了一些外部库来分析图像,所以需要这样做。我在互联网上搜索了一个解决方案,其中Java用于检测新插入的驱动器,但我找到了所有可以检测us

我目前正在从事一个项目,需要将数据批量导入Hadoop集群。需要导入Hadoop的数据驻留在SATA磁盘上。需要导入的数据是Encase取证磁盘映像(E01)。我创建了一个应用程序,从这些图像中提取文件并将这些文件导入Hadoop,这很好,但我需要手动启动该过程

我想通过热插拔SATA驱动器来自动化该过程,并自动启动提取过程。我用Java编写了我的程序,由于我使用了一些外部库来分析图像,所以需要这样做。我在互联网上搜索了一个解决方案,其中Java用于检测新插入的驱动器,但我找到了所有可以检测usb驱动器或使用udev规则启动a进程的库(我可以使用它,但更喜欢Java解决方案)

有人知道我所描述的东西是否存在吗?或者有人能给我指出正确的方向吗?非常感谢

差点忘了…我使用ubuntu 12.04 Server Edition作为我的操作系统。

是一个D-Bus API,提供有关媒体插入和删除的信息(包括通知),您可以使用订阅通知


或者,您可以让您的Java应用程序在
localhost
套接字上侦听,并编写
udev
规则,通过套接字发送适当的事件信息。

我无论如何都不是Java专家,但这种机制的存在对我来说似乎非常可疑。实际上,udev需要一个javaapi,或者内核本身。当然,我想你也可以用JNI来实现这一点……我会记住:轮询挂载点、JNotify或者我认为新的Java7文件IO可能会有所帮助。整个服务器是在你的控制之下,还是你需要能够在其他人的机器上安装此应用程序?服务器完全在我的控制之下。我快速浏览了DBUSJava,它似乎是我可以使用的东西..tnx!